Как разрешить выполнение заданий в нерабочее время, когда пул приложений IIS может простаивать? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь разобраться с помощью hangfire с основным веб-приложением .net.Примеры кажутся достаточно простыми, но у меня есть вопросы.

Если я хочу запустить задание по расписанию cron, даже если пул приложений iis спит, не стоит ли мне помещать сервер зависания в windowsservice?

Если в веб-приложении используются и сервер, и клиент, в документации упоминается изменение корневого файла конфигурации .net, чтобы приложение всегда работало.http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

Почему вы не можете просто установить вместо этого тайм-аут пула приложений на 0?

Другой вариант - установить сервер зависания как часть проекта службы Windows.Я бы предпочел не связываться со службой Windows, если она действительно не нужна.Это необходимо для выполнения запланированного задания (по расписанию cron), даже если ни один пользователь не отправляет запросы в приложение, чтобы предотвратить переход пула приложений в спящий режим.Установка времени ожидания пула приложений должна делать то же самое, не так ли?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы должны никогда ожидать, что веб-сайт будет выполнять расширенную работу, подобную этой.Они предназначены для выполнения быстрых (ish) вызовов и действий и возврата результатов.Предложение заключается в использовании службы Windows.Как только вы начнете возиться с тайм-аутами пула приложений и т. Д., У вас возникнут проблемы.

Теперь я могу пересмотреть этот ответ с выпуском Net Core 2.2.MS добавил в службу «Фоновая задача», которая позволяет вещам запускаться на сервере, пока сервер активен:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.2&tabs=visual-studio

...