Cron-подобная система для Windows? - PullRequest
5 голосов
/ 12 марта 2009

Я ищу эквивалент системы Cron для Windows. Идея состоит в том, чтобы планировать запуск и отслеживать, успешно ли он запущен или нет.

Система должна сделать следующее:

  • Должна быть возможность запуска Win32 COM-объектов и / или исполняемых файлов.
  • Должен иметь возможность запускать COM-объекты .NET и / или исполняемые файлы .NET.
  • Он должен иметь возможность запускать сценарии, написанные на любом языке, либо на основе собственной инфраструктуры (Python, Perl, Ruby), либо на основе DLR (IronPython, Ruby.NET и т. Д.)
  • Сценарии должны варьироваться от простых сценариев, занимающих несколько секунд, до довольно тяжелых, которые могут занять до получаса.

Аспект мониторинга имеет решающее значение. В общем, я ищу следующее:

  • Если скрипт или исполняемый файл дает сбой, необходимо отправить электронное письмо или другой механизм уведомления.
  • Каждый триггер должен быть зарегистрирован, чтобы мы могли оглянуться назад и увидеть, когда код потерпел неудачу.
  • Ошибка должна быть легко отслежена с помощью какого-либо отладочного вывода или трассировки стека.

Есть ли разработчики Windows, которые создали такую ​​систему? Я знаю, что в мире UNIX есть Cron, но как насчет мира Windows?

Ответы [ 8 ]

7 голосов
/ 12 марта 2009

В командной строке введите '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.
6 голосов
/ 12 марта 2009

Вы должны быть в состоянии использовать запланированное задание для всего вышеперечисленного.

ссылка на путеводитель: http://www.iopus.com/guides/winscheduler.htm

3 голосов
/ 12 марта 2009

Я бы предложил посмотреть пересмотренный Task Scheduler 2.0 в Vista / Server 2008 . Он намного мощнее, чем 1.0 в предыдущих версиях Windows, теперь способен

  • Триггеры, основанные на событиях, например каждый раз, когда вызывается код события приложения 1053
  • Триггеры при неудачных задачах (самое большое дополнение для меня)
  • Дополнительные встроенные действия, такие как отправка электронных писем вместо вызова blat.exe

Просматривая ваш список, я считаю, что все, что вы ищете, уже есть.

1 голос
/ 12 марта 2009

Взгляните на nnCron . Я использую облегченную версию. Он имеет синтаксис unix crontab. Есть файл журнала, но что касается более сложных аспектов мониторинга, вам необходимо предоставить подробности, например, вашему сценарию / приложению. код результата возврата (который будет зарегистрирован).

nnCron Lite был лучшим клоном cron для Windows (бесплатный, без perl-требования, crontab, пропущенные задачи, запуск в качестве скрытого окна, установка переменной enviroment - полезен для postgres «dump all» и т. Д.), Который я нашел. 1004 *

1 голос
/ 12 марта 2009

Если вы хотите, чтобы скрипт «запускал объекты Win32 COM и / или исполняемые файлы», «запускал объекты .NET COM и / или исполняемые файлы .NET», регистрировал ошибки и уведомлял о сбоях по электронной почте, что звучит для меня как работа для PowerShell .

В PowerShell нет ведения журналов и электронной почты, скорее это язык программирования, на котором вы можете довольно легко регистрировать или отправлять электронную почту (или любую другую информацию).

Я запланировал выполнение сценариев PowerShell с использованием службы «at» / «Task Scheduler» с успехом. Это хорошая комбинация.

1 голос
/ 12 марта 2009

Вы смотрели на Windows Scheduler? Кажется, он соответствует большинству, если не всем, ваших требований и уже включен в ОС. Вы можете найти это в MSDN

0 голосов
/ 12 марта 2009

Вы пробовали JIT-планировщик в сочетании с PowerShell?

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

0 голосов
/ 12 марта 2009

Посмотрите здесь: Cron для Windows . Также было какое-то Cron-подобное программное обеспечение, портированное для (Free) DOS, которое должно работать на Windows, но я не могу вспомнить название.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...