【问题标题】:How to write Code that runs Periodically at certain intervals in .Net 5.0 C# or F#如何在 .Net 5.0 C# 或 F# 中编写以特定时间间隔定期运行的代码
【发布时间】:2021-12-30 00:54:15
【问题描述】:

我已经用 F#(一些用 C#)/.Net 5.0 编写了一些代码,目前我只是将它作为控制台应用程序运行并在 Visual Studio 中对其进行调试。

我想要它

  • 自行运行 - 周一至周五早上 7 点到下午 6 点之间每小时运行一次
  • 如果需要,可以暂停执行。

我应该采取什么方法?当我编写 nodejs 应用程序时,我曾经将命令行命令放入 windows 调度程序。

我应该

  • 使用 windows 调度程序并作为命令行执行
  • 编写一个 Windows 服务来完成它
  • 还有别的吗?

我不确定要采取什么方法,我可能会错过一种完全适合这项任务的方法。

【问题讨论】:

  • 有很多框架允许您定义作业并按计划运行它们。仅举几例:Quartz.netHangfireFluentScheduler 等。
  • 您将通过什么机制启动进程暂停?
  • 我真的没想过(暂停)。如果它是 Windows 服务,我会暂停服务 - 否则我想我必须设置一个数据库标志,在使用上述库之一运行时检查该标志。
  • 您可以使用内置后台服务而不是框架:docs.microsoft.com/en-us/dotnet/core/extensions/workers

标签: c# f# scheduled-tasks .net-5


【解决方案1】:

如果您使用 Windows 运行 exe,您可以使用内置的任务计划程序。关于暂停应用程序,您可以向应用程序添加一个观察者,该观察者将在应用程序运行之前检查状态。例如。查看数据库或集中配置文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多