Запуск агента

  • Автор темы doc
  • Дата начала
D
#1
Запускаю агент на серевере с помощью agent.RunOnServer(doc.NoteID)
Но пока агент не отработает интерфейс пользователя "висит", т.е. юзер ничего не может делать.
Можно ли запустить агент "ассинхронно". Т.е. не ждать пока оно отработает? Как это можно сделать?
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Сделать агента с поднятой галкой "Run in background client thread" и уже в нём пускать твоего серверного агента.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#3
Omh
зачем такие сложности? B)

doc
пошлите команду в консоль сервера на запуска агента
call ses.SendConsoleCommand({tell amgr run ...
 
K

K-Fire

#4
This method can be used in a scheduled agent on a server to send console commands to another server. The signer of the agent must have privilege to "Run unrestricted methods and operations" on the server receiving the console command.

If this method is executed on a client, the current user must have privilege under "Full Remote Console Administrators" on the server receiving the console command.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#6
doc
А параметры ему передать можно? Я имею ввиду ID документа с параметрами.
предпочитаю клепать специальные доки-запросы, в которых вся нужная инфа для агента содержится
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#8
doc
Что значит доки-запросы?
новый док, в котором в спец. поле содержится унид дока, который нужно обработать, плюс еще поля, которые подсказывают как именно нужно обработать

пофанатзируйте, у вас всё получится ;)
 

TIA

:-)
Lotus team
15.05.2009
790
3
#9
предпочитаю клепать специальные доки-запросы, в которых вся нужная инфа для агента содержится
Обычно агенту в качестве параметра передаётся именно NoteId такого документа-запроса. Как без передачи параметров серверному агенту можно надёжно сообщить, какой из документов-запросов ему следует использовать? При том, что один и тотже агент могут пинать разные пользователи.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#10
Обычно агенту в качестве параметра передаётся именно NoteId такого документа-запроса. Как без передачи параметров серверному агенту можно надёжно сообщить, какой из документов-запросов ему следует использовать? При том, что один и тотже агент могут пинать разные пользователи.
через очереди, ониж поименные ;), хотя выигрыш сомнителен
 

TIA

:-)
Lotus team
15.05.2009
790
3
#11
через очереди, ониж поименные wink.gif, хотя выигрыш сомнителен
Если ты про очереди на MQCreate из C API, тогда не годится, т.к. речь о запуске агента с клиента сервере.

Можно очередь на документах строить. Но нужно попариться с реализацией надёжной критической секции для выскр*цензура*ия доков из очереди.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#12
Как без передачи параметров серверному агенту можно надёжно сообщить, какой из документов-запросов ему следует использовать?
я бы лучше схему перестроил, что агент запускается сам и никто его не пинает и спокойно отрабатывает запросы пользователей убедившись что док не залочен
 
D
#13
я бы лучше схему перестроил, что агент запускается сам и никто его не пинает и спокойно отрабатывает запросы пользователей убедившись что док не залочен
Я так и сделал. Пользователь оставляет реквесты для агента. Агент стартует ночью и читает оставленные для него реквесты.