Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как запустить выполнение метода в фоновом режиме? / 22 сообщений из 22, страница 1 из 1
06.09.2007, 10:38
    #34780022
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
здрасте
1
Необходимо запустить метод класса, причем имя класса я узнаю только в ходе выполнения программы, не подскажите как это можно сделать.

s nameCls ="Admin.Hi.Audit"
##class(nameCls).HiRebuild()

2
есть программа, в которой выводятся сообений в терминал, необходимо выполнить эту программу из хтмл странчки, но выводится ошибка. ошибка связана с недопустимость команды WRITE. можно ли отключить вывод этих сообщений

3
как запустить выполнение метода в фоновом режиме?
читал хелп по job bacground , но что-то не очень разобрался
...
Рейтинг: 0 / 0
06.09.2007, 10:51
    #34780091
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Если метод можно запустить по Do - значит можно запустить и по Job. Т.е.
Код: plaintext
j ##class(nameCls).HiRebuild()
В случае с вычисляемым именем метода возможно прокатит следующее
Код: plaintext
1.
2.
s name ="Admin.Hi.Audit" 
s name="##class("_name_").HiRebuild()"
j @name
Write можно "отключить" предусловием
Код: plaintext
1.
2.
3.
4.
5.
PRIMER(Scr)
 s Scr=$g(Scr, 1 )
 ...
 w:Scr !,"Опа!"
 ...
 q
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
06.09.2007, 11:16
    #34780225
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
спасибо, сейчас попробую
...
Рейтинг: 0 / 0
06.09.2007, 11:26
    #34780272
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Можно так же воспользоваться встроенной функцией ... но она недокументирована вроде
Код: plaintext
1.
d $zobjclassmethod(<имя класса>,<имя метода>,[параметр1],[параметр2],[параметр3]...)

Так на мой взляд безопаснее ... чем запускать простой eXecute

Пример запуска своего джоба приводил в теме по TCP биндингу
...
Рейтинг: 0 / 0
06.09.2007, 11:40
    #34780371
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
PtnТак на мой взляд безопаснее ... чем запускать простой eXecute
Какая же может быть "безопастность" при использовании недокументированой процедуры/функции?
Сегодня она есть... А завтра ее нет или работает подругому...
...
Рейтинг: 0 / 0
06.09.2007, 12:01
    #34780490
Александр Коблов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
PtnМожно так же воспользоваться встроенной функцией ... но она недокументирована вроде
Код: plaintext
1.
d $zobjclassmethod(<имя класса>,<имя метода>,[параметр1],[параметр2],[параметр3]...)

Вполне себе документирована

http://127.0.0.1:8972/csp/docbook/DocBook.UI.Page.cls?KEY=AZOBJ_classmethod

Cache 5.2.3
...
Рейтинг: 0 / 0
06.09.2007, 12:29
    #34780660
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
krvsa PtnТак на мой взляд безопаснее ... чем запускать простой eXecute
Какая же может быть "безопастность" при использовании недокументированой процедуры/функции?
Сегодня она есть... А завтра ее нет или работает подругому...

А ты скомпилируй какой нить класс и посмотри в исходник... Вопрос с документацией решается тем что функция выделяется в более мене компактный блок и его отдельно упоминаю в доке...

Все таки не каждый день версии меняются

Александр Коблов Вполне себе документирована

http://127.0.0.1:8972/csp/docbook/DocBook.UI.Page.cls?KEY=AZOBJ_classmethod

Cache 5.2.3

Вот я и пишу "вроде" ибо у IS доки отстают периодически
...
Рейтинг: 0 / 0
06.09.2007, 12:53
    #34780830
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Александр КобловВполне себе документирована
Вопросов больше не имею...
...
Рейтинг: 0 / 0
07.09.2007, 14:34
    #34784544
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Если я правильно понял job позволяет запустить выполнение программы в фоновом режиме (т.е. задача будет выполнлятся только тогда когда у процессора появляется свободное процессорное время).

а где можно посмотреть задачи запущеные в фоновом режиме?
я смотрел в портале управления->фоновые задачи... но там ничего не появилось (если конечно это там должно отображаться)
...
Рейтинг: 0 / 0
07.09.2007, 14:41
    #34784578
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Раньше это было в Панели управления -> Процессы...

Но как правило мы писали управление такими процессами сами.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
07.09.2007, 15:10
    #34784726
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
странно...
я наверно все же что-то не допонимаю
если пускать в терминале :
d ##class(Admin.Hi.Audit).HiRebuild(1)
то выводятся сообщения прописаные в программе
и все это дело длится минуты 2
в случае если я пускаю
j ##class(Admin.Hi.Audit).HiRebuild(1)
никаких сообщений не выводится и задача завершается за считанные секунды
...
Рейтинг: 0 / 0
07.09.2007, 15:21
    #34784775
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Я не знаю как чего и почему посоветовали

Но ЕМНИП через JOB запускается только рутины.

Или соответсвенно job HiRebuild^Admin.Hi.Audit.1(1)
...
Рейтинг: 0 / 0
07.09.2007, 15:22
    #34784778
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Она не завершается. Запускается паралльный процесс. От терминала этот процесс "отцепляется", можете его даже после запуска закрыть.
...
Рейтинг: 0 / 0
07.09.2007, 15:26
    #34784806
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
понятно. спасибо
...
Рейтинг: 0 / 0
07.09.2007, 15:30
    #34784819
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
>Если я правильно понял job позволяет запустить выполнение программы в фоновом режиме (т.е. задача будет выполнлятся только тогда когда у процессора появляется свободное процессорное время).
Насколько мне известно, job по приоритету не отличается от обычного запуска. У него другая задача. А приоритет понижается $ZUTIL(68,25,1) (вроде)
...
Рейтинг: 0 / 0
07.09.2007, 16:31
    #34785069
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
хм
...
Рейтинг: 0 / 0
07.09.2007, 16:55
    #34785163
Dysan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Я запускал процесс так:

Создал Программу .mac
например runjob.mac
в ней написал следующее:
--
START(param)
d @param
q
--
а потом вызвал её в терминале подав ей то что я хочу запустить в фоне
вот так:

job START^runjob("##class(ВАШ_КЛАСС).ВАШ_МЕТОД()")

и всё. она где-то там отработала
...
Рейтинг: 0 / 0
10.09.2007, 10:55
    #34787457
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
спасибо

и вот в продолжение темы
а как можно отследить ход выполнения процесса? т.е. мне надо знать когда этот процесс завершен
...
Рейтинг: 0 / 0
10.09.2007, 11:17
    #34787544
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
делайте счетчик в глобале и рулите им изнутри процесса.
На тот случай,если процесс закончится непредсказуемо, нужно еще отслеживать, жив ли он.
$D(^$J(jobnum)

Правда бывают глюки, один процесс падает, а второй запускается с этим же номером.
И кажется, что он жив.
...
Рейтинг: 0 / 0
02.10.2007, 11:03
    #34840134
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
подскажите пожалуйста
как можно приостановить выполнение процесса
и прекратить его выполнение
...
Рейтинг: 0 / 0
02.10.2007, 11:37
    #34840276
NoGot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
Посмотрите описание класса %SYSTEM.Process в документации, там все есть.
...
Рейтинг: 0 / 0
02.10.2007, 13:03
    #34840590
yot
yot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как запустить выполнение метода в фоновом режиме?
ага спасибо... нашел

• method Suspend() returns %Status

Suspend a process.
Put a process into a wait state so it stops executing code.

• method Terminate() returns %Status

Terminate a process.
Kills a process by sending it a halt messages.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как запустить выполнение метода в фоновом режиме? / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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