如何强制Hangfire立即处理队列?

时间:2017-07-18 21:26:02

标签: c# sql-server asynchronous hangfire

我有一个火灾队列,忘记了工作,我的队列配置为每10分钟执行一次,如下所示:

var options = new SqlServerStorageOptions
{
    QueuePollInterval = TimeSpan.FromMinutes(10) 
};

虽然这些工作“火上浇油”但我不想等待10分钟,我现在想要处理这个队列。怎么做?

1 个答案:

答案 0 :(得分:3)

我假设您的意思是要保持代码不变(使用10分钟的PollingInterval)但是需要一种机制来强制作业在需要时立即运行 - 在这种情况下我认为您应该能够使用Hangfire Dashboard UI,您可以在其中查看所有作业的详细分类,以及立即重试/触发等。

要安装它,只需添加Nuget包:Hangfire.Dashboard.Authorization

然后从以下链接添加适合您的应用类型的配置 - 通常正常工作。 http://docs.hangfire.io/en/latest/configuration/using-dashboard.html

更新 - WinForms

对于WinForms项目,我认为您最好的选择仍然是仪表板(您可以在应用程序中托管在本地主机上的OWIN服务器中 - 它比您想象的更容易)

以下是一些参考文献: