Скажем, у меня есть список из 10000 строк, которые должны быть обработаны 100 рабочими сценариями.
Я бы хотел, чтобы как можно больше синхронных сценариев выполнялось как можно больше.
Как только рабочий сценарий заканчивается одной строкой, он должен обработать следующую доступную строку, которая в данный момент не обрабатывается другим рабочим сценарием.
Если рабочий сценарий завершается ошибкой в строке, он пропускает его и переходит к следующей доступной строке, которая в данный момент не обрабатывается другим рабочим сценарием.
Рабочий сценарий в любое время может быть недоступен в течение неизвестного периода времени.
Теперь предположим, что из первых 100 рабочих сценариев любой данный рабочий сценарий может стать недоступным (либо потерпеть крах, либо занять слишком много времени с текущими данными), но через некоторое время станет доступным снова. Он может снова стать недоступным и может занять слишком много времени, чтобы снова стать доступным для обработки 10000 строк.
Как обработать все 10000 строк с синхронно запущенными начальными 100 рабочими сценариями, но любая из которых может стать недоступной и через некоторое неизвестное случайное время снова стать доступной для обработки.
Я мог бы представить что-то вроде выполнения цикла для всех 10 000 строк и другого сценария для опроса всех доступных рабочих через определенные промежутки времени и синхронного запуска этих рабочих.
Я не уверен, как бы я подошел к этой проблеме.