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

时间:2016-09-05 14:05:39

标签: console-application c#-5.0 hangfire

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

在阅读了一些关于其他替代方案的文章后,我遇到了HangFire。

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

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

任何人都可以通过他们的输入来指导我。

1 个答案:

答案 0 :(得分:0)

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

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

现在你可以编写一个程序来简单地使用RecurringJob.AddOrUpdate(()=> Process.Start(“你的application.exe”,Cron.Weekly);

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