Выполните все рабочие процессы с высоким приоритетом каденции до любых рабочих процессов с низким приоритетом - PullRequest
0 голосов
/ 15 октября 2019

В документации по https://cadenceworkflow.io/docs/03_concepts/02_activities#activity-task-routing-through-task-lists упоминается, что поддерживаются несколько приоритетов при наличии One task list per priority and having a worker pool per priority. В этой реализации все еще могут быть рабочие процессы с низким приоритетом, которые выполняются до рабочих процессов с высоким приоритетом.

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

1 Ответ

0 голосов
/ 16 октября 2019

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

Если ваша скорость выполнения относительно низкая, вы можете иметь отдельный рабочий процесс «очередь с приоритетами», который будет получать сигналы с запросами на выполнение определенной операции, а затем поддерживать очередь с приоритетами запросов в своей памяти. Затем выполните действия, читая их из этой очереди. По завершении действия ответный сигнал будет отправлен в рабочий процесс, который запросил выполнение.

...