https://docs.hangfire.io/en/latest/background-processing/processing-jobs-in-windows-service.html
Итак, я хочу переместить сервер зависания из моего веб-приложения в службу Windows.
Вопрос:При перемещении шага, который запускает сервер Hangfire OUT вашего веб-приложения и INTO службы Windows, ваше веб-приложение все еще находится там, где вам нужно создавать и / или планировать задания, верно?Вы не будете делать это из самой службы, потому что, как бы она называла службу Windows.
То, что у меня было до сих пор, находится в моем веб-приложении, добавляя ряд запланированных заданий в ConfigureServices при запуске.Он также создавал сервер Hangfire.
Таким образом, изменение заключается в том, чтобы просто позволить службе Windows управлять запуском сервера Hangfire, чтобы он всегда слушал, но (и это то, где я ушел с пути)Вы все еще планируете задания из своего веб-приложения?
Все, что делает этот код, это запускает сервер зависания.
using System.ServiceProcess;
using Hangfire;
using Hangfire.SqlServer;
namespace WindowsService1
{
public partial class Service1 : ServiceBase
{
private BackgroundJobServer _server;
public Service1()
{
InitializeComponent();
GlobalConfiguration.Configuration.UseSqlServerStorage("connection_string");
}
protected override void OnStart(string[] args)
{
_server = new BackgroundJobServer();
}
protected override void OnStop()
{
_server.Dispose();
}
}
}