Выполняйте все высокоприоритетные рабочие процессы каденции перед низкоприоритетными рабочими процессами.
В документации на https://cadenceworkflow.io/docs/03_concepts/02_activities упоминается, что несколько приоритетов поддерживаются наличиемOne task list per priority and having a worker pool per priority.
При такой реализации все еще могут существовать рабочие процессы с низким приоритетом, которые выполняются перед рабочими процессами с высоким приоритетом.
Можно ли реализовать такую систему приоритетов, чтобы ни один рабочий процесс, идущий в пул рабочих с низким приоритетом, не выполнялся до того, как рабочие процессы, идущие к рабочим с высоким приоритетом, не выполняются?
1 ответ
В большинстве случаев приоритеты полезны не для рабочих процессов, которые в большинстве своем заблокированы в ожидании внешних событий, а для действий.
Если ваша скорость выполнения относительно низкая, вы можете иметь отдельный рабочий процесс "очереди приоритетов", который будет получать сигналы с запросами на выполнение определенного действия, а затем поддерживать очередь приоритетов запросов в своей памяти. Затем выполните действия, читая их из этой очереди. По завершении действия в рабочий процесс, который запросил выполнение, будет отправлен ответный сигнал.