Опции задачи
Объединяет спецификаторы Time: и Watch* логическим "ИЛИ" (по умолчанию они объединены логическим "И").
Пример:
#( test-mailbox \ эта задача будет запускаться каждый час или по "Alt-Ctrl+F12" Time: 0 * * * * * Also WatchHotKey: @^{F12} Rule: POP3-CHECK: "hostname" "pop3user" "password" Action: START-APP: e:\win\the bat!\thebat.exe /CHECKALL )#
Предписывает выполнять задачу "от имени" текущего авторизовавшегося пользователя системы. Задача с опцией AsLoggedUser будет выполнена только если на машине присутствует "залогинившийся" пользователь.
Пример:
#( interactive-job AsLoggedUser Time: 0 10 * * * * Action: START-APP: c:\msoffice\winword.exe )#
Эту опцию следует использовать только если nnCron стартовал в качестве сервиса (от имени пользователя System). Не используйте AsLoggedUser, если вы запускаете nnCron не сервисом, а обычным приложением (см. также Запуск и остановка nnCron).
Предписывает задаче выполняться не только в нормальном режиме, но и в режиме остановки.
Пример:
#( test_hyperactive HyperActive Time: */5 Action: MSG: "Running in normal and suspended mode!" )#
Предписывает загружать пользовательский профиль вместе с запускаемыми процессами
(START-APP:, START-APPW:).
При авторизации задачи используйте
эту опцию для приложений, которые нуждаются в загрузке профиля ('Outlook
Express', 'The Bat!', 'IE' и т. д.).
Отключает выполнение задачи
Используется также при составлении задач, которые планируется запускать вручную.
Не удалять из кронтаба RunOnce-задачу.
Совместное использование опций RunOnce и NoDel позволяет запускать
задачу при каждом перечитывании кронтаба.
Пример:
#( every_crontab_reload \ задача запускается при каждом перечитывании кронтаба RunOnce NoDel Action: TMSG: "Crontab was reloaded!" 3
)#
Запрещает выводить в лог-файл информацию о выполнении данной задачи.
Удобно использовать со слишком часто срабатывающими задачами или с "секретными"
задачами, которые не должны обнаруживать себя записями в лог-файле.
Отменяет выполнение авторизации, если nnCron настроен на запуск всех задач от имени указанного пользователя (переменная RunAsDefaultUser в nncron.ini).
OnceAHour
OnceADay
OnceAWeek
OnceAMonth
Предписывает запускать задачу только один раз в течение часа (дня/недели/месяца).
Пример:
#( daily-task
\ задача выполняется один раз в день при загрузке системы Time: START-TIME OnceADay Action: START-APP: backup.bat )#
Сколько бы не перезагружался компьютер, вышеприведенная задача будет выполнена только один раз. Можно вводить ограничение по времени:
Time: * 12-16 * * * * OnceADay
В данном случае задача будет выполнена один раз в день, если компьютер работал с 12:00 по 16:59. (И только один раз, даже если компьютер перезагружался. Этого не добиться при использовании опции RunOnce).
Информация об "отработавших" программах пишется в файл etc\once.txt
в домашнем каталоге nnCron.
Иногда может понадобиться "удалить" опцию OnceA*
прямо из задания - например, для того, чтобы после перезагрузки системы отсчет
времени начался заново. Для этого можно использовать слово CANCEL или
слово CLEAR-ONCE, которые "снимают" атрибуты OnceA*
с текущего задания.
Пример:
#( test_clear_once Time: START-TIME OnceADay Action: START-APP: backup.bat \ удаляем опцию 'OnceA*' если существует указанный файл: FILE-EXIST: "c:\more_backups.sem" IF CLEAR-ONCE THEN )#
RunMissed
RunMissed: <hh:mm|days>
Иногда задачи могут оказаться просроченными - не выполненными в запланированное время из-за того, что компьютер был выключен или просто не был загружен nnCron. Опция RunMissed предписывает выполнить просроченную задачу "при первой возможности", т. е. сразу после загрузки nnCron. Управление запуском просроченных задач рассмотрено более подробно в соответствующей главе.
Пример:
#( test_missed \ задача запустится в указанное время \ или при первой возможности (если в \ 12:00 nnCron был не загружен) RunMissed Time: 0 12 Action: \ ... )#
Опция RunMissed: <hh:mm|days> позволяет позволяет явным образом указывать максимальное время ожидания (в часах:минутах или днях), которое может пройти с момента запланированного, но просроченного старта задачи. Если с момента просроченного старта прошло больше времени, чем установлено пользователем, то внепланового запуска просроченной задачи не произойдет.
Пример:
#( test_missed1 \ задача запустится в указанное время или при первой \ возможности (если в 12:00 nnCron был не загружен \ и максимальное время ожидания не превысило трех \ часов тридцати минут) RunMissed: 03:30 Time: 0 12 Action: \ ... )# #( test_missed2 \ задача запустится в указанное время или при первой \ возможности (если в воскресенье, в 12:00 nnCron был \ не загружен и максимальное время ожидания не превысило \ трех дней) RunMissed: 3 Time: 0 12 * * 7 Action: \ ... )#
Обратите внимание, что запись RunMissed: 0 равнозначна отсутствию опции RunMissed.
Если вы используете не RunMissed: <hh:mm|days>, a RunMissed, то в качестве значения максимального времени ожидания используется значение переменной nncron.ini DefaultRunMissedTime:, которое (по умолчанию) равно 360 часам, т. е. 15-ти дням.
Включать/выключать опцию RunMissed и устанавливать максимальное время ожидания вы можете прямо из GUI nnCron. Соответствующие чекбоксы и поля ввода есть на диалоговых окнах "Новая задача/Редактировать задачу"
См. также: RunMissed?
Предписывает выполнить задачу только один раз, после чего физически удалить
ее из кронтаба.
Удаленные задачи автоматически сохраняются программой в специальный неподключенный
кронтаб deleted.tab, который расположен в домашнем каталоге nnCron.
Основная сфера применения - "Напоминание" (Reminder:).
Предотвращает одновременное выполнение двух и более экземпляров одной задачи. Пока задача с опцией SingleInstance выполняется, ни один следующий экземпляр этой же задачи не сможет стартовать - попытка его запуска будет пресечена.
Предотвратить одновременный запуск нескольких разных задач (как, впрочем, и разных экземпляров одной задачи) можно с помощью слов GET и RELEASE. GET захватывает, а RELEASE отпускает заданный семафор. В качестве параметра используется адрес переменной, который остается на стеке после употребления (выполнения) имени этой переменной. Очередные экземпляры задач будут запущены, но начнут работать только дождавшись, когда предыдущий экземпляр освободит семафор.
Пример:
#( test_task1 \ Сообщения "task1" и "task2" никогда не появятся одновременно. VARIABLE SEM1 Action: SEM1 GET MSG: "task1" SEM1 RELEASE )# #( test_task2 Action: SEM1 GET MSG: "task2" SEM1 RELEASE )#