Приветствую!
Есть скрипт, который выполняется достаточно долгое время. Его задача собрать данные, поэтому запускается несколько экземпляров с разными параметрами, по крону.
Проблема в том, что он отрабатывает за разное время, поэтому, например, если мы запускаем 4 экземпляра скрипта в 12.00, а следующие 4 экземпляра в 18.00 — не факт, что те, которые запущены в 12.00, закончили работу.
Сам по себе скрипт работает очень хорошо, как надо. Проблема в том, чтобы как-то организовать пул или очередь, чтобы не запускать новые экземпляры, пока работают старые.
Есть ли какой-то инструмент, чтобы каждый момент времени работало скажем не более 4 рабочих процессов, и запускались новые по очереди с определёнными параметрами? Или надо писать своё что-то на основе gearman например? Я думал, что есть готовый инструмент, но не могу найти.
Решение с makefile -j, которое описано тут
stackoverflow.com/questions/463963/parallel-processing-from-a-command-queue-on-linux-bash-python-ruby-whateve, непонятно как поставить на поток.