Windows服务器上的任务自动化软件

时间:2010-12-17 05:51:23

标签: automation windows-server-2003 scheduled-tasks

我们目前拥有在我们的Windows服务器上运行大量任务的Java程序,我们计划将其替换为开源任务自动化软件,以提高效率和可维护性。

以下是我们正在寻找的功能:

  1. 能够以任何语言(Java,C#,Python等)运行任务/脚本。
  2. 在任何时刻(2010年12月16日12:00)安排任务,或按特定时间间隔(每10分钟)运行一次。
  3. 如果任务执行失败并阻止它们再次运行,则能够通知管理员。
  4. 独立任务的并行执行以及在任务之间设置依赖关系的能力。
  5. 无需重新启动软件即可在需要时优先处理和抢占任务。
  6. 报告每项任务耗时等的能力等。
  7. 远程添加,删除和监控正在执行的任务的进度
  8. 如果您知道任何可满足所有或大部分需求的开源解决方案,请与我们联系。谢谢你的帮助!

4 个答案:

答案 0 :(得分:3)

您可以尝试使用Hudson,即开源持续集成系统来执行此操作。它提供了大多数(如果不是全部)要求的功能。每个任务(或称为Hudson术语中的“项目”)可以定期安排,或通过SCM触发器或使用标记器URL的卷曲调用安排。您可以将作业链接为下游项目,也可以在各个框之间并行执行。它具有出色的错误报告功能,并存档所有构建日志,错误报告并支持各种格式(如junit),以生成彩色图表,显示您的工作成功率,测试指标等趋势。

请参阅此内容以开始:

http://wiki.hudson-ci.org/display/HUDSON/Use+Hudson

你可以通过创建Maven目标来安排任务(或者ant,Makefiles任何东西因为这个原因;它可以运行任何脚本,因此它非常灵活)电子邮件通知非常有用,通知是作业失败或不稳定

此外,Hudson带有一堆开源插件,非常有用。希望有所帮助。

答案 1 :(得分:1)

答案 2 :(得分:1)

您是否考虑过 Quartz.Net

以下一些突出显示的功能。

作业安排

  • 在一天中的某个时间(到毫秒)
  • 在一周中的某些日子
  • 在本月的某些日子里
  • 在一年中的某些日子
  • 不在注册日历(例如商务假期)中列出的特定日期
  • 重复特定次数
  • 重复直到特定时间/日期
  • 无限期地重复
  • 以延迟间隔重复

聚类

  • 故障切换。
  • 负载平衡。

听众&插件

  • 插件机制可用于向Quartz添加功能,例如保留作业执行历史记录,或从文件加载作业和触发器定义。
  • Quartz附带了许多“工厂制造”的插件和听众。

答案 3 :(得分:0)

你研究过PowerShell吗?它能够调用.net库,任何类型的可执行文件和任何类型的脚本。 您可以使用并行任务和顺序任务编写复杂工作流的脚本。 您可以写入Windows日志,发送电子邮件通知,以各种格式写入日志等。 如果从任务管理器运行脚本,则可以远程启动,监视和停止任何任务。 它是免费的。