На каком-то этапе нашего пути к программированию мы создавали проекты, которые отвечают на запросы клиентов только тогда, когда клиент делает запрос. Я мог вспомнить, как писал фоновый процесс, который будет активироваться только тогда, когда пользователь выполняет действие в приложении. Такие рабочие места, как общение с платежными API-интерфейсами для обновления вашей базы данных и отправка автоматических ежегодных текстов о днях рождения клиентам и т. Д.

Для таких повторяющихся заданий очевидны два варианта: служба Windows и запланированная задача. Согласно 1800_Information о переполнении стека, «Одно из преимуществ использования запланированной задачи состоит в том, что если есть некоторый потенциальный риск, связанный с запуском службы, такой как утечка памяти или зависание сетевого подключения, тогда служба Windows может потенциально зависнуть из-за долгое время, отрицательно влияя на других пользователей. С другой стороны, запланированная задача написана так, чтобы она не выполнялась, поэтому даже в случае утечки эффект сводится к минимуму ».

Когда дело доходит до запланированной задачи, существует множество опций, включая Hangfire, RabbitMQ, Resque и т. Д. На мой взгляд, RabbitMQ и Hangfire выделяются, они просты в настройке и предлагают панель инструментов, которая будет использоваться для отслеживания ваших повторяющихся заданий и запланированных задач. .

Проверьте мое репо на GitHub для быстрой настройки Hangfire: hangfire-test.