Просто используйте структуру Seize --- Service --- Delay --- Release (при условии, что worker1 тратит 3 минуты в начале обработки).
Блоки Seize / Release захватывают и освобождают worker2 , Сервисный блок представляет собой worker1, работающий в течение 3 минут. Блок «Задержка» охватывает оставшиеся 2 минуты для уже занятого работника 2.
Вы делаете это так (а не с 2 служебными блоками: первый использует работника1 и работник2 в течение 3 минут, второй - работника 2 для другого 2). мин) потому что вы хотите убедиться, что worker2 не будет захвачен другим запросом, когда закончится первый служебный блок. (В некоторых моделях такая возможность не будет проблемой, поэтому вы можете вместо этого использовать два служебных блока, но я бы не стал, потому что здесь ясно сказано, что один и тот же worker2 worker удерживается целых 5 минут.
Вы также можете поместить все это в пользовательский блок (см. Справку AnyLogi c), так что это отдельный блок многократного использования.