powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Создание задачи выполняющейся по расписанию
14 сообщений из 14, страница 1 из 1
Создание задачи выполняющейся по расписанию
    #35410461
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо, чтоб некая программа на сервере выполнялась по расписанию. Как это сделать?
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35410477
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть можно прикрутить встроенный планировщик, или писать свой.

Если писать свой, то делаете программу, которая запускается при старте системы в фоновом режиме и время от времени опрашивает таблицу расписания.
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35410541
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наши клиенты используют какой-то сторонний планировщик. Он запускает bat-файл в котором происходит старт терминала и в нем запуск той или иной нашей программки...

А что кащейским планировщиком никто не пользуется?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35410594
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Необходимо, чтоб некая программа на сервере выполнялась по расписанию. Как это сделать?
Это можно сделать двумя способами:
1) визуально, используя "Мастер планировщика задач" в SMP ([Домашняя страница] > [Менеджер задач]);
2) программно, используя класс %SYSTEM.Task (подробности в документации).

Пример task.mac:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
	new x
	s x=##Class(%SYSTEM.Task).%New()
	s x.Name="Наименование задания"
	s x.NameSpace="ОБЛАСТЬ"
	s x.RescheduleOnStart= 1 
	s x.DailyFrequency= 0 	;один раз в день
	s x.DailyStartTime=$ZTIMEH("09:30:00")
	s x.ExecuteCode="d BACK^task"
        s x.ContinueAfterError= 1 
        s x.Description="Описание задания"
  
	d x.%Save()
	q
BACK
        ;полезная работа
	q	  

PS: в версии Caché 5.0.21 класс %SYSTEM.Task точно есть.
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35417933
Сейчас структура уже другая - %SYS.Task используется для хранения, собственно, расписания, и через SMP мы работаем именно с его экземплярами, а наследники %SYS.Task.Definition - собственно, как контейнеры кода вашего задания. Соответственно, при конфигурировании задания через System Management Portal, классы-наследники %SYS.Task.Definition выбираются из выпадающего списка.

Cтарые классы %SYSTEM.Task и пр. - сохранены для обратной совместимости.
---------
http://writeimagejournal.com - InterSystems Russia Technology Blog.
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419105
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каше 5.2 - я в упор не вижу, где там в портале управления создать новую задачу.

Запланировать из списка заданных - пожалуйста:
[Домашняя страница] > [Конфигурация] > [Настройки менеджера задач] > [Планировщик задач]

А где создать свою задачу?
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419120
Socratdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Каше 5.2 - я в упор не вижу, где там в портале управления создать новую задачу.

Запланировать из списка заданных - пожалуйста:
[Домашняя страница] > [Конфигурация] > [Настройки менеджера задач] > [Планировщик задач]

А где создать свою задачу?

Как создать свою задачу выше описал тов. servit . Для этого надо использовать %SYS.Task.
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419156
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Блок А.Н.
В 5.2 из портала задача не создается.
Программно создавать можно способом как указал servit, а можно так:
Для начала создаете класс, наследник от %SYS.Task.Definition.
Переопределяете параметр TaskName и метод OnTask().
Затем:
s x=##Class(%SYSTEM.Task).%New()
s x.Name="Наименование задания"
s x.NameSpace="ОБЛАСТЬ"
s x.RescheduleOnStart=1
s x.DailyFrequency=0
s x.DailyStartTime=$ZTIMEH("09:30:00")
s x.Description="Описание задания"
s x.TaskClass = "ВАШ_КЛАСС"
d x.%Save()
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419187
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плохо. Идеология планировщика нецелостная, половину можно сделать в портале, половину из терминала или программировать. С таким успехом же можно написать свой.
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419225
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Каше 5.2 - я в упор не вижу, где там в портале управления создать новую задачу.
[Home] > [Configuration] > [Task Manager Settings] > [Task Schedule] , далее выбрать Schedule New Task .
В поле "Task type" выбираете нужный Вам тип задачи, например, "RunLegacyType". У каждого типа свой набор вводимых параметров.
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419244
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял, молчу :-)
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35419246
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо :-)
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35420616
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Идеология планировщика нецелостнаяОна, скорее, не вполне продуманная, попросту говоря, почти 1 в 1 скопированная с планировщиков Windows/UNIX. Вот, например, вроде бы полезная функция - отправка e-mail по успеху/неуспеху. Но это лишь успех в том смысле, что задачу удалось запустить. Нет возможности отправки аналогичного сообщения о результате выполнения задачи, а он весьма полезен для таких задач, когда результат неочевиден, например, проверка целостности БД. Естественно, можно создать новый тип задачи и предусмотреть в классе соотвествующий функционал (как, например, сделала сама ИнтерСистемз в новой - с 2008.1 - задаче "ОтчетДиагностики"), но почему бы не унифицировать это?
...
Рейтинг: 0 / 0
Создание задачи выполняющейся по расписанию
    #35421590
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey MaslovВот, например, вроде бы полезная функция - отправка e-mail по успеху/неуспеху. Но это лишь успех в том смысле, что задачу удалось запустить. Нет возможности отправки аналогичного сообщения о результате выполнения задачи, а он весьма полезен для таких задач, когда результат неочевиден, например, проверка целостности БД. Естественно, можно создать новый тип задачи и предусмотреть в классе соотвествующий функционал (как, например, сделала сама ИнтерСистемз в новой - с 2008.1 - задаче "ОтчетДиагностики"), но почему бы не унифицировать это?

+100
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Создание задачи выполняющейся по расписанию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]