Что Бы Одновременно Агент Дважды Не Запускался ?

  • Автор темы Mikle77
  • Дата начала
M

Mikle77

Есть агент.
Может запускаться как по расписанию так и вручную (по кнопке в которой он запускается на сервере runonserver).

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

Может в коде агента можно узщнат что он уже запущен ?
 

Darkhan

Green Team
14.12.2012
99
2
BIT
0
Для этого можно "вручную" фиксировать где-нибудь момент запуска(и окончания) агента, при условии, что он отрабатывается на сервере
 

erdi

Green Team
20.08.2008
264
17
BIT
0
в начале запуска агента создаешь документ-блокировка с полями: название агента и дата запуска, в конце убиваешь этот документ. В этом же агенте перед созданием документа-блокировки - проверка нет ли данного документа для этого агента. если есть выходишь из него, если нет - создаешь и потом удаляешь.
Также не забываем обработчик ошибок, чтобы если вылетел агент с ошибкой он убил свой блокирующий документ и желательно еще 1 агент по времени, чтобы если все-таки зависли такие документы блокировки долгое время(30-60 минут) убивать их принудительно.
 

savl

Lotus Team
28.10.2011
2 625
314
BIT
544
1. Пересмотреть расписание.
Не запускать по расписанию во время работы пользователей.
2. Еще вариант оставить его только по расписанию раз в 10-30 минут и отобрать кнопку у пользователя.
3. Сделать для документов какой-нибудь промежуточный статус и пусть агент обрабатывает только документы с этим статусом.
На этот "левый" статус переводить документы как раз по той кнопке пользователя.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
запускаемый по расписанию - это агнет на сервере (как пр-ло) - создать очередь (блокировочный док - это слишком) и сообщение в нем
клиент по кнопке проверяет очередь - не запускается если есть
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
233
"Количество одновременно запускаемых конкурентных агентов = 1" в настройках сервера не оно?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!