Существует рассылка сообщений всем подписчикам, которая вызывается в текущей задаче каждые ~300 мс. Как можно вызвать http запрос, но чтобы ответ сформировался и отправился на уведомления при следующей итерации вызова рассылки уведомлений. Чтобы не дожидаться ответа от сервера и получения ответа, потому что ожидание может весь процесс рассылки уведомлений затормозить. То есть вызвать некий Task? но что бы обработка ответа уже была позже на одном из следующих вызовов рассылки (когда сформируется ответ).
Примерный код метода рассылки:
private async Task<IBusMessage> EnrichMessageAsync(IResult result, CancellationToken cancellationToken)
{
var message = new ChannelBusMessage(result);
// некое получение Alarm событий
result.AlarmEvents = await alarmChecker.CheckAsync(result.Events);
// получение WebEvents который выполняется долго из-за Http запросов
result.WebEvents = await webChecker.CheckAsync(result.Events);
return message;
}
WebEvents - это обычный список. Допустим пускай внутри webChecker создастся запрос и выполняется, а вернется пустой список. А на следующей итерации рассылки уже полученный результат.