如何使用 Hangfire 托管控制台应用程序以在服务器上执行后台任务

问题描述 投票:0回答:2

我有一个控制台应用程序,其中包含调用外部托管的 Web 服务并获取一些数据并更新数据库的逻辑。该任务需要每周执行一次。因此,我设置了一个任务计划程序来每周运行控制台应用程序。

在浏览了一些有关其他可用替代方案的文章后,我发现了 HangFire。

我有兴趣利用 Hangfire,因为它为我提供了一种很好的方法来使用其仪表板来检查在后台执行的作业的状态。

现在,如果我想使用 Hangfire 每周调用控制台应用程序而不是任务计划程序,那么如何在服务器上使用 Hangfire 托管控制台应用程序。

任何人都可以在这里指导我提供他们的意见吗?

console-application c#-5.0 hangfire
2个回答
0
投票

我对 Hangfire 相当陌生,但你的问题对我来说没有意义。

也许我误解了,但听起来您希望 Hangfire 像任务调度程序一样工作 - 但这不是它的目的。 Hangfire 以运行状态存在 - 它不会自行生成。您启动一个程序并告诉该应用程序连接到该存储,可能要监视并进入哪个队列。然后它将查询您指定的存储以查找所需执行的任何任务并执行它们。

现在您可以编写一个程序来简单地 RecurringJob.AddOrUpdate(() => Process.Start("your application.exe", Cron.Weekly);

我不确定 Hangfire 对于 cron 作业有多优雅。如果您需要在 3 天后重新启动应用程序,我不确定它是否会知道它需要在 4 天内运行该任务,或者它是否会再次清理并重新安排 7 天。


0
投票

虽然使用 Hangfire 进行任务调度并不是最传统的方式 - Hangfire 官方文档为此用例提供了一个example。只需将所需的作业添加到示例中即可

© www.soinside.com 2019 - 2024. All rights reserved.