Указатель периодического события
Зачастую приходится определять события, с помощью которых одни и те же
действия происходят постоянно через равные промежутки времени (например,
анализ работоспособности системы, инициализация модема, обработка
log-файлов, выполнение команды Drop и т.д.). При этом вместо задания
нескольких однотипных описателей событий имеет смысл определить событие
лишь однажды, используя указатель периодического события. Этот указатель
задается вместо time period и имеет следующий вид (к примеру):
P.01:00
Символ 'P' вместо дня недели означает, что событие периодическое, а
время после точки задает интервал периодичности выполнения события. Отсчет
интервала начинается с того момента, когда после внесения описания (или
корректировки) этого интервала в events.ctl впервые будет запущен T-Mail.
Продолжительность интервала может находиться в пределах 00:01 ... 255:00.
Указатель периодического события можно использовать в файле events.ctl
только для директив Poll, Send, Post, Freq, UpdFreq, Drop, Set, Exec, Exit,
Repack. При этом следует учесть, что директивы Poll и Drop в случае
многозадачной работы выполняются только задачей Master. Поясним работу
данного указателя на примере ( events.ctl ):
[2]Exec !load.bat P.01:00
Время - 13:15. Тогда это событие (запуск командного файла load.bat)
выполнится (задачей номер 2) сначала сразу после запуска, затем в 14:15,
затем в 15:15 и так далее через каждый час. Если T-Mail в момент, когда
событие должно быть выполнено, был чем-то занят, то событие будет
выполнено, как только это станет возможным. Однако, "накопления" событий не
происходит. Продолжим наш пример: допустим, что с 16:10 до 17:30 T-Mail
обслуживал длительный сеанс связи. Таким образом, было пропущено два
момента для выполнения события. В этом случае наше событие будет выполнено
в 17:30 сразу после окончания этого сеанса связи, и ЛИШЬ ОДНОКРАТНО.
Следующее событие будет выполнено в 18:15 (опять же, по мере возможности) и
так далее.
Пример файла events.ctl :
~~~~~~~~~~~~~~~~~~~~~~~~~
;======This is EVENTS list for T-Mail system for 2:5030/15==========
;
;
Exit 99 8:30
Exec daily.bat 6:15
Exec Weekly.bat 0.0:10
;
RePack 6:01
Poll 5030/2 18:10
Poll 5030/6 17:00-20:00
Poll 5020/35 4:00
RestoreOut 5030/* !5030/2 !5030/29 0:00-23:59
;
Hold All 11:00-23:00
MailOnly All !/100 5:00-7:00
Direct 5030/6.*
Mail 5030/7 5030/6
Mail *:*/*.* 5030/2
Files *:*/*.* 5030/2
;
; Вот примеры синтаксически "сложных" конструкций:
;
;Mail 5040/* !5040/3.3 5030/* !/*.4 5030/7 1.0:00-5:23:59
;Mail @nodelist\r50.net 5030/3
;Direct 5030/*.* !/2 !/3 !/5
;Boss * !/2 !/4 .1 3:00-4:00
;
;======================= End of file events.ctl ====================
* * *