【问题标题】:Quartz.Net using windows task schedularQuartz.Net 使用 windows 任务调度器
【发布时间】:2017-06-02 01:26:28
【问题描述】:

我正在寻找每 20 分钟运行一次的计划任务(控制台应用程序)。

我已经研究过使用 Quartz.Net 来执行此操作,它看起来很棒,但我看不出它是否可以与我的控制台应用程序一起使用。

我想要的是:

  • 如果我只使用quartz.net,那么这个控制台应用程序必须永远打开,我的代码才能按计划运行。有没有办法让 Windows 每 20 分钟为我运行一次 Quartz.Net 计划任务?

所以,Windows Task Schedular --20 mins--> 使用 Quartz.Net 运行控制台应用程序。

或者我应该制作一个标准的 .NET 控制台应用程序,让它每 20 分钟运行一次控制台应用程序?

干杯

【问题讨论】:

  • 使用 Topshelf (topshelf-project.com) 和 Hangfire (hangfire.io) 来实现你想要的。 Topshelf 是一个优秀的 windows 服务框架,hangfire 是一个调度器。

标签: c# asp.net scheduled-tasks quartz.net


【解决方案1】:

不要将 Task Scheduler 与 Quartz 混用,它们是 2 不同的做事方法。

通常,任务计划程序会按一定时间间隔运行控制台应用程序,这些应用程序只是完成工作并关闭。

使用 Quartz 的建议方法是将其嵌入到 Windows 服务应用程序中。 然后在服务器上安装此服务并将其配置为始终运行并自动启动(这应该可以保护您免受崩溃和终止,并确保应用程序将始终运行,不像控制台应用程序)

【讨论】:

  • 这很有意义。谢谢。
  • @magna_nz - 要添加到这一点,我看到的唯一方法是使用net start 定期启动 Windows 服务(在你的情况下是 Quartz 的主机)服务失败的情况(可能发生但在正常情况下不应该发生)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 2018-02-06
  • 2012-10-06
  • 2015-07-12
相关资源
最近更新 更多