首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在特定时间、特定队列调度Hangfire后台作业?

如何在特定时间、特定队列调度Hangfire后台作业?
EN

Stack Overflow用户
提问于 2021-06-09 00:14:24
回答 1查看 326关注 0票数 0

我使用Hangfire来调度作业。在我的设置中,我定义了两个不同的队列。一个用于处理循环作业和具有“低”优先级的作业。另一个队列用于具有“高”优先级的作业,这些作业是根据用户输入临时创建的。非循环作业的调度方式如下,以确保它们最终进入正确的队列:

代码语言:javascript
复制
var client = new BackgroundJobClient();
var state = new EnqueuedState(queueName);
client.Create(methodCall, state);

一切正常,但现在我有了一个新的要求,在某些情况下,我需要延迟执行“高优先级”作业。

我在Stack Overflow上发现了this问题,其中提到BackgroundJobClient.Schedule操作接受enqueueAt参数:

代码语言:javascript
复制
var client = new BackgroundJobClient();
client.Schedule(methodCall, enqueueAt);

不幸的是,这个调度操作没有为我提供定义队列的选项。使用此方法调度的作业最终会在Hangfire的“默认”队列中结束。你知道我如何实现作业调度延迟,同时能够在运行时确定队列吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-11 02:28:36

您可以使用参数来定义methodCall的队列名称。基于discussion here,您可以有选择地在您选择的队列上运行该方法。UseQueueFromParameter应该能解决你所面临的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67890777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档