【发布时间】:2017-02-10 15:10:05
【问题描述】:
我有 2 个hangfire 实例/服务器正在运行。两者都指向同一个hangfire 数据库。如何限制其中一个hangfire 实例仅从特定队列中获取作业而忽略其他队列?
谢谢
【问题讨论】:
标签: hangfire
我有 2 个hangfire 实例/服务器正在运行。两者都指向同一个hangfire 数据库。如何限制其中一个hangfire 实例仅从特定队列中获取作业而忽略其他队列?
谢谢
【问题讨论】:
标签: hangfire
当您启动实例时,您可以提供服务器要监视的队列列表:
app.UseHangfireServer(new BackgroundJobServerOptions()
{
// order defines priority
// beware that queue names should be lowercase only
Queues = new [] { "critical", "default", "myqueue" }
});
【讨论】:
相信 Hangfire 服务器会轮询已注册的队列以获取作业,因此如果您在多个服务器上注册了相同的队列,请先进行 serverd。
如上所述,只需在每个服务器上设置一些具有唯一队列名称的队列,因为 Hangfire 使用这些队列来确定处理它的位置。
例如,在我的情况下,我有 1 台服务器用于一般维护队列,适用于所有服务器和一般应用程序,而环境服务器包含作业以环境特定任务为目标的队列。
【讨论】: