53

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

4

6 回答 6

63

http://quartznet.sourceforge.net/

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

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

于 2009-02-03T14:24:37.590 回答
7

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

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

于 2009-11-20T23:11:21.030 回答
6

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

于 2009-02-03T14:22:43.753 回答
5

我在这个问题中阅读了有关Quartz的内容How may I schedule a C# Windows Service to perform a task? . 它是一个 C# 库,允许灵活调度。

于 2009-02-03T14:25:27.290 回答
4

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

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

老实说,这有点像一场噩梦(与其说是设计和实现,不如说是调度逻辑有点拖累)。

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

于 2009-11-04T16:21:21.283 回答
2

Aditi Technologies有一个新的基于云的调度程序,称为调度程序

调度程序允许开发人员通过在简单或复杂 CRON 调度上运行的 HTTP webhook 调度任务的执行。

于 2013-05-29T17:46:37.673 回答