Тайм-ауты - запросить их все в начале или один за другим? - PullRequest
0 голосов
/ 22 декабря 2018

В целом, при проектировании системы, в которой несколько событий происходят в некотором четко заданном логическом порядке, есть ли какие-либо преимущества либо в запросе всех необходимых тайм-аутов в начале процесса, либо в запросе всегда только «следующего» тайм-аута(или, другими словами, время ожидания следующего события)?

Чтобы прояснить, я говорю о сценарии, когда вы хотите, чтобы несколько вещей происходили последовательно.Событие A должно произойти через 3 часа после инициализации, событие B - через 10 часов после инициализации, а событие C - через 48 часов после инициализации какого-либо процесса.

Когда процесс запущен, он должен запросить тайм-аут только для события A (котороеЗатем, в свою очередь, запросит тайм-аут для события B и т. д.) или он должен немедленно запросить тайм-аут для всех событий?

В нашем случае процесс может быть остановлен в любой момент времени - таким образом, еслионо останавливается через 5 часов после инициализации, тогда событие A должно было уже произойти, а события B и C вообще не должны происходить.

Процесс также может быть инициирован в особых случаях на полпути (т. е. «Запустить процесс через 5 часов", в этом случае событие B должно произойти через 5 часов), и временные рамки отдельных процессов могут быть обновлены вручную (т. е." позволяет отложить событие B на 2,5 часа для этого отдельного экземпляра процесса).

Любые мысли приветствуютсяНадеюсь, это не так уж и сложно.

1 Ответ

0 голосов
/ 23 декабря 2018

Если я получил ваш сценарий в порядке, вы можете начать это с саги, которая начинается с начального сообщения, которое запускает процесс, при обработке исходного сообщения вы запрашиваете ожидаемые тайм-ауты и в обработчиках тайм-аута проверяете,события / операции, где они обрабатываются и действуют в зависимости от текущего состояния ...

Имеет ли это смысл?

...