Настройка Hangfire в Webapp и сервисе окон

Я настроил hangfire в проекте, основанном на webapi, для запуска задания backgrond. Я выполнил приведенную ниже конфигурацию для hangfire.

Конфигурация проекта Webapi для Hangfire

public static void ConfigureHangfire(IAppBuilder app)
            {

                GlobalConfiguration.Configuration.UseSqlServerStorage("Connnection_Dev");
                IUnityContainer unityContainer = UnityConfig.GetConfiguredContainer();
                UnityJobActivator unityJobActivator = new UnityJobActivator(unityContainer);
                GlobalConfiguration.Configuration.UseActivator(unityJobActivator);
                app.UseHangfireDashboard();


                var options = new BackgroundJobServerOptions { WorkerCount = Environment.ProcessorCount * 20 };
                app.UseHangfireServer(options);
            }

Теперь я хочу обрабатывать фоновые задания (которые будут инициироваться из проекта webapi) с использованием оконных служб. Я создал оконную службу в соответствии с приведенным ниже кодом, но служба не может получить задание. Панель показывает, что задание всегда находится в состоянии ожидания. Есть ли какая-то особая конфигурация, которую мне не хватает

     public partial class Service1 : ServiceBase
            {
                private BackgroundJobServer _server;

                public Service1()
                {
                    InitializeComponent();

                    GlobalConfiguration.Configuration.UseSqlServerStorage("Connnection_Dev");
                }

                protected override void OnStart(string[] args)
                {

      IUnityContainer unityContainer = UnityConfig.GetConfiguredContainer();
                        UnityJobActivator unityJobActivator = new UnityJobActivator(unityContainer);

                var options = new BackgroundJobServerOptions { WorkerCount =       Environment.ProcessorCount * 20 ,
Activator=unityJobActivator};
                    _server = new BackgroundJobServer(options);
                    _server.start();
                }

                protected override void OnStop()
                {
                    _server.Dispose();
                }
            }

0 ответов

Другие вопросы по тегам