适用于Windows的Cron系统?

时间:2009-03-12 11:00:24

标签: windows cron

我正在寻找相当于Windows的Cron系统。我们的想法是能够安排触发器并监控它是否成功运行。

系统需要做的是:

  • 它应该能够触发Win32 COM对象和/或可执行文件。
  • 它应该能够触发.NET COM对象和/或.NET可执行文件。
  • 它应该能够触发用任何语言编写的脚本,基于本机框架(Python,Perl,Ruby)或基于DLR(IronPython,Ruby.NET,无论如何)
  • 脚本应该介于简单的脚本之间,这些脚本需要花费几秒钟到相当重的脚本,这可能需要半个小时。

监控方面至关重要。所以基本上我正在寻找以下内容:

  • 如果脚本或可执行文件失败,则应发送电子邮件或其他一些通知机制。
  • 应记录每个触发器,以便我们可以回顾并查看代码何时失败。
  • 应该通过某种调试输出或堆栈跟踪轻松跟踪故障。

是否有任何Windows开发人员创建了这样的系统?我知道在UNIX世界中有Cron,但在Windows世界中呢?

8 个答案:

答案 0 :(得分:7)

在命令提示符下键入“at”

> at /?
The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

答案 1 :(得分:6)

您应该可以使用上述所有计划任务。

指南链接:  http://www.iopus.com/guides/winscheduler.htm

答案 2 :(得分:3)

我建议查看修订后的Task Scheduler 2.0 in Vista/Server 2008。它在以前版本的Windows中比1.0强大得多,现在能够

  • 基于事件的触发器,例如每次导致应用程序事件代码1053时
  • 触发失败的任务(对我而言最大的补充)
  • 更多内置操作,例如发送电子邮件而不是调用blat.exe

查看您的清单,我相信您所寻找的一切都已存在。

答案 3 :(得分:1)

你看过Windows Scheduler了吗?它似乎满足了大多数(如果不是全部)您的要求,并且已经包含在操作系统中。您可以在MSDN

找到它

答案 4 :(得分:1)

如果您希望脚本“触发Win32 COM对象和/或可执行文件”,“触发.NET COM对象和/或.NET可执行文件”,记录失败并通过电子邮件通知失败,这对我来说就像一份工作PowerShell

PowerShell没有为您完成日志记录和电子邮件,而是一种编程语言,您可以相当容易地记录或发送电子邮件(或其他)。

我已安排PowerShell脚本使用“at”/“Task Scheduler”服务运行,但成功。这是一个很好的组合。

答案 5 :(得分:1)

看看nnCron。我正在使用Lite版本。它有一个unix crontab语法。有一个日志文件,但对于更高级的监控方面,由您的脚本/应用程序提供详细信息,例如。返回结果代码(将被记录)。

nnCron Lite是Windows的最佳cron克隆(免费,没有perl要求,crontab,错过的任务,作为隐藏窗口运行,设置环境变量 - 对postgres“dump all”工具有用,等等)我找到了。

答案 6 :(得分:0)

看看这里:Cron for Windows。还有一些类似Cron的软件移植到(免费)DOS上,可以在Windows上运行,但我记不起名字了。

答案 7 :(得分:0)

您是否尝试过将JIT-Scheduler与PowerShell结合使用?

http://shareme.com/download/jit-scheduler.html