Изменение последовательности событий рабочего процесса

Ищете предложение или решение для следующего варианта использования

  1. Приложение получает сообщения, упорядоченные по времени изменения, определенному функциональным ключом (например, идентификатором сотрудника). Для функциональной клавиши может быть несколько сообщений
  2. Каждое сообщение запускает рабочий процесс. Если есть ожидающий рабочий процесс, сотрудник хотел бы поставить новые сообщения в очередь до тех пор, пока ожидающий рабочий процесс не будет завершен.

Есть ли способ изменить последовательность сообщений, чтобы обрабатывать их как группу, идентифицированную функциональным ключом в сообщении?


person dash    schedule 19.06.2020    source источник


Ответы (1)


У меня был бы один рабочий процесс для каждого сотрудника, который получает сообщение (возможно, с SignalWithStart) и помещает его в очередь в переменной, если уже идет обработка сообщения. Обработка может быть реализована как дочерний рабочий процесс или непосредственно как часть рабочего процесса сотрудника. Когда обработка завершена, запускается новый, если есть буферизованный запрос. Если нет буферизованных запросов и обработка завершена, рабочий процесс сотрудника может завершиться.

person Maxim Fateev    schedule 19.06.2020