Несколько серверов Hangfire не работают одновременноC#

Место общения программистов C#
Ответить
Anonymous
 Несколько серверов Hangfire не работают одновременно

Сообщение Anonymous »

В приложении Saas мы хотим, чтобы импорт заказов выполнялся последовательно для каждого клиента. Но импорт нескольких заказов может выполняться одновременно для разных клиентов (до определенного момента). Затем также выполняются другие типы заданий, которые мне снова хотелось бы запускать арендатором последовательно, но несколько клиентов могут выполняться одновременно.
т.е.
OrderImportServer - всего максимум 20 рабочих
  • Tenant1q_OI — работает последовательно
  • Tenant2q_OI — работает последовательно
  • Tenant3q_OI — работает последовательно
OrderReleaseServer — всего максимум 20 рабочих
  • Tenant1q_OR — работает последовательно
  • Tenant2q_OR — работает последовательно
  • Tenant3q_OR — работает последовательно
Как этого можно добиться в Hangfire?
Мы используем Asp.Net и Hangfire версии 1.8.11, используя SQL Server для хранилища Hangfire.
Я надеялся, что смогу установить WorkerCount для сервера, чтобы указать максимальное количество одновременно выполняемых заданий, а затем создать очереди внутри сервера, которые выполняются последовательно (т. е. максимум 1 рабочий процесс на очередь), но я неясно, возможно ли последнее. т. е. если я настрою сервер на использование 4 рабочих процессов, и только в одной очереди будет 10 заданий в очереди, я боюсь, что очередь будет запускать задания 1–4 параллельно, чего я не хочу.
Есть ли способ добиться желаемого результата? Возможно, использование сервера на каждого арендатора с 1 WorkerCount, а затем ограничение максимального количества одновременных заданий с помощью [MaximumConcurrentExecution][1]?
OrderImportTenant1Server
  • OIT1Q
OrderImportTenant2Server
  • OIT2Q
OrderReleaseTenant1Server
  • ORT1Q
OrderReleaseTenant2Server
  • ORT2Q
Это похоже на множество серверов с одной очередью на каждом... не уверен, что это имеет значение с технической точки зрения, просто кажется, что проще думать о «Сервере» как о типе задания (импорт заказов или выпуск заказов), а затем очереди по арендаторам внутри них.


Подробнее здесь: https://stackoverflow.com/questions/788 ... ncurrently
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»