Наше веб-приложение ставит в очередь задания, используя BackgroundJobClient.Create
, но мы хотим обрабатывать все задания в отдельном сервисе Windows, а не в нашем веб-приложении. Если наше веб-приложение запускается без вызова builder.UseHangfireServer
, то при создании новых заданий выдается следующая ошибка:
System.InvalidOperationException:
JobStorage.Current property value has not been initialized.
You must set it before using Hangfire Client or Server API.
Похоже, что AddHangfire(options => ...UseSqlServerStorage(...)
лямбда не запускается до тех пор, пока не будет вызван UseHangfireServer
. В качестве обходного пути мы можем настроить наше веб-приложение на прослушивание очередей, названных в честь некоторого идентификатора GUID, но это кажется пустой тратой ресурсов для веб-приложения, которое может запускать несколько экземпляров в веб-ферме.
Есть ли какие-либо способ настроить клиент Hangfire без запуска сервера Hangfire в том же процессе?