有哪些好的.NET作业调度器和运行程序解决方案?

4
我正在寻找一种解决方案,或一组具有以下组件的解决方案:
  1. 作业调度程序 - 按特定计划运行特定作业。我已经了解了Quartz.NET,并且它似乎是一个不错的框架,但我没有发现它与下面的组件集成。

  2. 作业运行程序 - 运行作业,作业可以作为AppDomain从目录中加载,也可以从存储在数据库中的二进制文件中加载。当然,除了直接引用传递的作业之外,还应该能够运行这个组件。此外,此组件将与作业调度程序集成。此外,应该可以通过WCF或类似方式控制此组件。我希望能够查看当前正在运行的作业,通过指向文件路径或数据库行来安排新作业,或停止作业。

  3. GUI - 与作业运行程序通信并提供GUI shell,它将公开作业运行程序的所有功能。类似于SQL Server Agent shell。

我想要实现的其中一个目标是能够像通过SQL Server Management Studio运行SQL脚本一样轻松地部署和运行C#作业。


3
为什么不直接安排一个定时任务来运行C#应用程序:http://support.microsoft.com/kb/308569 - OMG Ponies
Rexem:+1,“我希望我的公司能使用这个并淘汰CA7”。 - tsilb
这可能是一个选项,但我正在寻找一些带有GUI的东西,可以通过网络查看,也许是一个Web界面,并且可以通过C#轻松进行编程访问以进行作业执行和部署。 - eulerfx
你实际上可以包装Windows计划任务,并仅呈现您希望用户修改的窗格。 在Vista等新API中可用,甚至可以将您的计划放在子文件夹中等。 - Paul Farry
@rexem:+10 真的。用新程序加载系统,消耗资源来复制已经做得非常好的事情=异常失败。 - Sam Harwell
appliedalgo.com - 能够做计划安排、执行管理(包括执行历史记录/参数/结果的持久性和跟踪)、负载均衡等。他们的负载均衡实现基于CPU/内存使用率和磁盘活动计算“主机分数”(也可以覆盖),并提供简单的“扩展API”,可从.NET和Java客户端访问。然而,我不认为它支持作业中止/取消。尽管如此,它是一个完全独立的服务器应用程序,具有自己的GUI,因此您可以回顾执行参数和结果并进行快速比较。它专门用于在Windows上进行数字计算。 - Swab.Jat
4个回答


2
有点晚了,但对其他人仍可能有用。
这是一个我花了相当多时间的项目,看起来能够满足大部分要求。它也是我们内部使用的,所以我会尽量保持其更新。

https://github.com/DawidPotgieter/BackgroundWorker

这与Quartz相当类似,但更专注于管理工作及其数据。

0

我一直在使用DryadLINQ。如果你正在寻找一个分布式作业执行引擎,它绝对值得一试。但是它确实要求你尽可能多地使用LINQ编写代码,因为它会解析LINQ执行树,并确定如何将LINQ执行分布到集群中的所有节点。


0

有一篇维基百科页面列出了工作调度程序(大多数是商业解决方案)。我们使用一个名为JAMS的.NET解决方案 - 由于我的公司不可能支付10k+美元,因此有一个免费的开发版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接