Показать сообщение отдельно
Старый 19.04.2011, 19:03   #2  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Навскидку такой вариант:
использовать SingleInstance функциональность.
Для этого в кодеюните 448 "Job Queue Dispacher" или в собственном отдельном SingleInstance-кодеюните создаёте булевые переменные, которые и включаете TRUE, FALSE по мере надобности, т.е. перед началом работы каждого процесс сам процесс включает булевую переменную типа ProcessComplete=FALSE и потом, если процесс завершён полностью, то ProcessComplete=TRUE. T.e. по идее если по плану следующий процесс стартует через 10 минут, то он первым делом должен обратиться к булевой переменной в SingleInstance-кодеюните и если NOT ProcessComplete, то ждём +10 минут и обращаемся снова. И только если ProcessComplete=TRUE, то стартуем данный процесс. Есть конечно и минус: если по какой-то причине предыдущий процесс вывалился так, что не смог закончить своё пребывание в SingleInstance-кодеюните, то следующий процесс вообще никогда не стартует, так как будет ждать вечно. Но на такой случай можно ждать макс. определённое время и следующий процесс включать принудительно по истечении макс. возможного ожидания.