Задача (описание)
Задача - это именованная синтаксическая конструкция, предназначенная для описания работы, которую nnCron должен произвести по указанию пользователя. В рамках задачи описывается как сама работа (запуск программ, операции с файлами, демонстрация сообщений на экране и т. д.), так и разнообразные условия, при соблюдении которых эта работа должна быть произведена (время, наличие/отсутствие указанных файлов, наличие/отсутствие носителя в дисководе и т. д.).
Каждой задаче присваивается уникальное имя, которое идентифицирует задачу и облегчает дальнейшую работу с ней. Имя задачи не должно содержать пробелов.
Как следует из раздела, посвященного расширенному режиму, описание каждой задачи начинается с конструкции:
#( <имя_задачи>
Встретив эту последовательность, парсер кронтаба сразу переключается в расширенный режим. Имя задачи может содержать не только буквы латинского алфавита (кроме пробела), но и буквы вашей локальной раскладки клавиатуры (например, кириллицы). Длина имени ограничена 255-ю знаками. Чтобы зафиксировать конец описания задачи используется последовательность:
)#
Она переключает парсер кронтаба обратно в классический режим.
В любом месте внутри каждой задачи можно использовать специальный знак комментария до конца строки, который принят в языке Форт: \ (обратный слеш). Не забывайте ставить пробел после знака комментария, поскольку он тоже является ключевым словом nnCron.
Пример:
#( first_task \ это моя первая самостоятельная задача )#
С точки зрения синтаксиса этот пример вполне корректен. Единственный его недостаток - он не имеет никакой функциональности, поскольку тело задачи first_task содержит только строку-комментарий.
Как же выглядит полнофункциональная задача? Из чего она состоит?
Прежде всего, задача может (и должна) содержать раздел, описывающий действия, которые этой задаче предписано произвести. Такой раздел обозначается ключевым словом Action:.
Пример:
#( first_task \ это моя первая самостоятельная задача Action: \ действие \ воспроизводим мультимедиа-файл PLAY-SOUND: c:\winnt\media\chimes.wav )#
Перед разделом Action: могут в произвольном порядке располагаться другие составляющие задачи:
В общих чертах, среднестатистическая задача выглядит примерно так:
#( имя_задачи [\ комментарий до конца строки] [опции] [авторизация] [спецификация времени (Time:)] [спецификация события] [условия запуска задачи (Rule:)] действия (Action:) \ ... выполняем работу )#
Вот немного доработанная версия нашей первой задачи. Мы добавили опцию NoLog (не фиксировать выполнение задания в лог-файле nnCron) и спецификатор времени Time: */15 * * * 1-5 * (выполнять каждые пятнадцать минут по рабочим дням):
#( first_task \ это моя первая самостоятельная задача NoLog \ опция Time: */15 * * * 1-5 * \ спецификатор времени Action: \ действие \ воспроизводим мультимедиа-файл PLAY-SOUND: c:\winnt\media\chimes.wav )#
Вопросы, связанные с условиями и способами запуска задач подробно рассмотрены в разделе "Запуск задачи".