Hangfire服务器正在尝试处理其他队列中的作业

我想问一下是否有一种方法可以定义HangFire服务器不应该处理重复作业?


有两个应用程序(Windows服务和Web应用程序)使用HangFire运行后台作业,因此有两个hangfire服务器(正确定义了队列)。


服务仅创建重复性作业,并且正在使用“默认”队列。Web应用程序创建了“一劳永逸”的作业,并且正在使用其他队列(例如web_app_queue)。


尽管为其他队列定义了Web应用程序创建的HangFire服务器,但它似乎正尝试调度/处理重复作业,但是Web应用程序HangFire服务器无法访问Windows服务可用的必需程序集。


Web App HangFire服务器:


var backgroundJobServer = new BackgroundJobServer(new BackgroundJobServerOptions { Queues = new[] { "web_app_queue" } });

Web App HangFire作业:


var client = new BackgroundJobClient();

var state = new EnqueuedState("web_app_queue");

var jobId = client.Create(methodCall, state);

Windows服务HangFire服务器:


var server = new BackgroundJobServer();

Windows Service HangFire作业:


private static void AddRecurringJob<T>(string cronExpression) where T : IJob

{

    RecurringJob.AddOrUpdate<T>(job => job.Execute(), cronExpression, TimeZoneInfo.Local);

}

未为Windows Service HangFire服务器和作业定义队列名称,因此应用了默认队列(“默认”)。





人到中年有点甜
浏览 221回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP