Решение для задержки событий на N дней

В настоящее время мы пишем приложение в Microsoft Azure и планируем использовать концентраторы событий для обработки событий в реальном времени.

Однако после первоначальной обработки нам придется отложить дальнейшую обработку событий на N дней. Процесс будет работать так:

Событие инициировано -> Поместить событие в концентратор событий -> Событие извлекается из концентратора событий и обрабатывается -> Событие должно задерживаться на X дней -> Событие обрабатывается далее (два последних шага могут быть циклом)

Как мы можем добиться этой задержки дальнейшей обработки событий без использования опросов или аналогичных стратегий. Одна из идей - использовать очереди Azure и время ожидания их видимости, но согласно документации поддерживается максимум 7 дней, а наши бизнес-требования находятся в пределах максимального диапазона 1-3 месяцев. Количество событий в нашей системе не должно превышать 10к в день.

Любые идеи будут оценены, спасибо!


person Robert Bengtsson    schedule 21.11.2016    source источник
comment
Вы не возражаете, когда я спрашиваю, почему вы не хотите использовать опрос? В противном случае вы можете сохранить (сериализованные) события в контейнере больших двоичных объектов с данными, которые необходимо обработать, как имя подконтейнера, например mycontainer \ 2016 \ 12 \ 21 \ myevent1.json (для события, полученного сегодня, и задержки один месяц) и запускайте веб-задание или что-то еще один раз в день, чтобы увидеть, что ему нужно обработать любые капли текущей даты. Если это так, вы можете обработать их и удалить / заархивировать капли.   -  person Peter Bons    schedule 21.11.2016
comment
Моя первоначальная мысль заключалась в том, что решение для опроса не было бы таким элегантным и что у него также могут быть проблемы с масштабированием. Я бы предпочел решение, в котором я мог бы поместить логику задержки в какую-то инфраструктуру, которая уведомляет меня, когда наступает событие. При этом я думаю, что ваша идея сработает, и, возможно, мы пойдем именно на это, если не найдем ничего лучше. Спасибо!   -  person Robert Bengtsson    schedule 22.11.2016