Если у вас есть 1000 таких сервисов, лучше создать 1000 агентов, которые будут иметь следующую структуру внутри:
Вам нужен выход Если у вас есть заполнение, чтобы вернуться к основному, selectOuputIn не будет работать.
Чтобы выбрать доступный сервисный блок, вы можете сделать это в явном выборе selectOutputIn (с использованием агентов)
findFirst(myAgents, a->a.service.delaySize()==0).selectOutputOut