Миграция сервера Hangfire из веб-приложения в службу Windows - PullRequest
0 голосов
/ 26 сентября 2019

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();
        }
    }
}
...