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

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

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

3
как запустить выполнение метода в фоновом режиме?
читал хелп по job bacground , но что-то не очень разобрался
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #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
как запустить выполнение метода в фоновом режиме?
    #34780225
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
спасибо, сейчас попробую
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #34780272
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так же воспользоваться встроенной функцией ... но она недокументирована вроде
Код: plaintext
1.
d $zobjclassmethod(<имя класса>,<имя метода>,[параметр1],[параметр2],[параметр3]...)

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

Пример запуска своего джоба приводил в теме по TCP биндингу
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #34780371
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PtnТак на мой взляд безопаснее ... чем запускать простой eXecute
Какая же может быть "безопастность" при использовании недокументированой процедуры/функции?
Сегодня она есть... А завтра ее нет или работает подругому...
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #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
как запустить выполнение метода в фоновом режиме?
    #34780660
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
как запустить выполнение метода в фоновом режиме?
    #34780830
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр КобловВполне себе документирована
Вопросов больше не имею...
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #34784544
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
Если я правильно понял job позволяет запустить выполнение программы в фоновом режиме (т.е. задача будет выполнлятся только тогда когда у процессора появляется свободное процессорное время).

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

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

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

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

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

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

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

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

Правда бывают глюки, один процесс падает, а второй запускается с этим же номером.
И кажется, что он жив.
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #34840134
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
подскажите пожалуйста
как можно приостановить выполнение процесса
и прекратить его выполнение
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #34840276
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите описание класса %SYSTEM.Process в документации, там все есть.
...
Рейтинг: 0 / 0
как запустить выполнение метода в фоновом режиме?
    #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
22 сообщений из 22, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как запустить выполнение метода в фоновом режиме?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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