MiniM. Saving time.


| About | Download | Tools | Knowledge Base | How to Buy |

MiniM Overview

Getting Started

Download

Documentation

Tools

Cache Tools

GT.M Tools

Knowledge Base

FAQ

Contacts

Copyrights

MiniM Additional Tools | Nov 8, 2014

%AT - запуск заданий по шаблонам времени
упрощенный аналог команды cron из unix

ЗАПУСК

Описание команды Пример выполнения
1 Запуск для обработки списков заданий
J ^%AT
2 Добавление нового или перезапись параметров старого задания(описание параметров ниже)
S rc=$ADD^%AT(name,time,uci,cmd)
3 Удаление задания
S rc=$$KILL^%AT(name)
4 Запуск тестового примера
D TEST^%AT
5 Остановка тестового примера
D TESTKILL^%AT

ОПИСАНИЕ

%AT запускает задание в указанный день/время по шаблону из описания.

Выполняемые задания задаются настройкой в глобале ^%SYS("%AT"). Поскольку %AT никогда не завершает работу, его надо запускать один раз, желательно при запуске Minim. В случае сбоя, перезапуск выполнить:

J ^%AT
%AT проверяет настройки расположенные в глобале ^%SYS("AT") с периодичностью 1 минута, при наступлении даты/времени совпадающего с указанным шаблоном. В момент запуска команды cmd, доступны две переменные:

NA - имя задания (name),
TS - фактическая дата:время в формате "YYYY:MM:DD:hh:mm", например: "2014:10:10:14:00"

Так же,перед выполнением задания, выполняется переход в указанный uci, если uci не указан, задание запускается из uci, где работает демон ^%AT.

В случае невозможности запуска задания, %AT фиксирует в системном логе minim.log ошибку.

Структура хранения данных в глобале ^%SYS:

  ^%SYS("AT",name)=                 (пусто)
            ,name,"time")=time      (шаблон времени, описание см.ниже)
                 ,"uci")=uci        (раздел запуска)
                 ,"cmd")=d ^test    (команда на запуск)

Добавление задания

Добавление задания выполняется командой:

S rc=$ADD^%AT(name,time,uci,cmd)

после добавления, задание будет активно сразу, как только шаблон совпадет тек. датой/временем, переменные определяются так:

name - имя задания , которое будет использовано. Обратите внимание, если вы указываете уже существующее имя, то параметры будут перезаписаны новыми значениями.

time - шаблон времени, в следующем формате: пять значений, через пробел.

1 2 3 4 5
m1,..,mN|* h1,..,hN|* D1,..,DN|* M1,..,MN|* W1,..,WN|*

где:
m - минуты [0-59],
h - часы [0-23],
D - день месяца [1-31],
M - месяц [1-12],
W - день недели [0-6], 0-воскресение, 1-понедельник и т.д.

Числа можно перечислять, через "," - запятую (см. примеры ниже). Если указанная позиция не используется указываем "*" (звездочка). Задвоенные запятые (или пустой параметр) ",," недопускаются!

uci - раздел для запуска.
cmd - команда запуска.

Удаления задания

Удаление задания выполняется командой:

S rc=$KILL^%AT(name)

где:
name - имя задания к удалению.

Задание сразу исчезает из списков активных заданий, но если в момент удаления, данное задание исполнялось, оно выполнится до конца.

Если необходимо сохранить параметры задания, выполните самостоятельное копирование части глобала приблизительно по следующей схеме:

M ^atemp(name_$h)=^%SYS("AT",name)

Примеры шаблонов времени

"* 0 2,4,8 * * 1,5" команда будет выполняться в 2:00, 4:00, 8:00 часов, каждый понедельник и пятницу
"* * * * *" команда будет запускаться каждую минуту используйте данный шаблон, только для теста!!
"0,30 * 1,15 * *" команда запускается каждые пол часа, 1 и 15-го каждого месяца

Важно! Лишние пробелы в шаблоне не допускаются!

Пример формирования заданий

TEST ;##;добавить процесс в список
 i $$ADD^%AT("test-"_$zn,"* * * * *","","DO TESTAT^"_$zn)
 q
 ;
TESTAT ;данная метка вызывается каждую минуту
 w !,"OK:",NA,":",TS
 q
 ;
TESTKILL ; удалить тестовый пример из списков заданий
 i $$KILL("test-"_$zn)
 q

Загрузить архив: at.zip

Александр Чудновский
azbuka@rbcmail.ru

To add module send text description and zip archive to mail: support@minimdb.com


Copyright (C) Eugene Karataev
Info Support