【问题标题】:Recommend a C# Task Scheduling Library [closed]推荐一个 C# 任务调度库 [关闭]
【发布时间】:2010-10-05 04:02:48
【问题描述】:

我正在寻找一个 C# 库,最好是开源的,它可以让我以相当大的灵活性安排任务。具体来说,我应该能够安排每 N 个时间单位以及“每个工作日 XXXX 时间”或“每个星期一 XXXX 时间”运行一次。比这更多的功能会很好,但不是必需的。这是我想在 Azure WorkerRole 中使用的东西,它立即排除了 Windows 计划任务、“at”、“Cron”以及任何需要安装和/或 GUI 才能运行的第三方应用程序。我在找图书馆。

【问题讨论】:

标签: c# azure scheduled-tasks


【解决方案1】:

我在这个问题How might I schedule a C# Windows Service to perform a task daily? 中读到了Quartz。它是一个 C# 库,允许灵活调度。

【讨论】:

    【解决方案2】:

    Aditi Technologies 提供了一个新的基于云的调度程序,名为 Scheduler

    调度器允许开发者通过调度任务的执行 在简单或复杂 CRON 计划上运行的 HTTP webhook。

    【讨论】:

      【解决方案3】:

      Quartz 似乎是一个不错的解决方案。

      我最近(今年)不得不为我正在从事的一个主要项目编写自定义任务计划程序。他们也无法使用 Windows 任务计划程序,还希望能够通过上传程序集(通过 ASP.net 网站)执行自定义功能,并让服务在指定时间执行适当的任务。

      老实说,这有点像一场噩梦(设计和实现并不多,但调度逻辑有点拖累)。

      我强烈建议在决定“自己动手”(也就是重新发明轮子!)之前用尽所有其他途径。

      【讨论】:

        【解决方案4】:

        我在 Java 时代使用过 Quartz,它工作得很好。我现在将它用于一些 .Net 工作,并且效果更好(当然,它已经稳定了很多年)。所以我当然支持它的建议。

        另一件我刚开始尝试的有趣的事情是 .Net 4.0 中的新 System.Threading.Tasks。我一直在使用这些任务来并行化工作,它充分利用了多核/处理器。我注意到那里有一个名为 TaskScheduler 的类,我没有详细查看它,但它有 QueueTask、DeQueTask 等方法。至少值得研究一下。

        【讨论】:

          【解决方案5】:

          http://quartznet.sourceforge.net/

          “Quartz.NET 是非常流行(原文如此!)开源 Java 作业调度框架 Quartz 的一个端口。”

          PS:智者的话,不要试图在工作时只导航到quartz.net ;-)

          【讨论】:

          • quartz.net 是使用 windows scheduler 还是 timers 进行调度?
          • 但它不支持开箱即用的异步/等待。
          • 它有一个严重的错误,如果你有 20 个任务和 5 个线程在池中,它会更频繁地执行前几个任务,并且最近的 tsks 每几分钟只执行一次,而不是像我一样每 15 秒执行一次'问过。正如@michael-sync 提到的,它不支持异步/等待。
          • 如果您在 2017 年来到这里,请使用 HangFire。 hangfire.io HangFire 是一种在 .NET 和 .NET Core 应用程序中执行计划任务和后台处理的简单方法。无需 Windows 服务或单独的进程。还带有一个漂亮的仪表板 UI 开箱即用。由持久存储支持。开放且免费用于商业用途。相关SO问答:stackoverflow.com/q/27875631/325521
          【解决方案6】:

          参见 Codeproject 上的A New Task Scheduler Class Library for .NET

          【讨论】:

          • 比石英更喜欢这个,但需要知道,如果它是长期支持的库。企业原因。
          猜你喜欢
          • 2014-01-21
          • 1970-01-01
          • 2011-05-03
          • 2011-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-04
          相关资源
          最近更新 更多