Есть ли система очереди заданий, которая позволяет заданиям зависать от других задач?

Например, я работаю над приложением для развертывания. Скажем, мы развертываем 4 ветки из SVN, для чего требуется 4  `svn export`  из подрывной деятельности. Это может занять некоторое время в зависимости от ветки, которую мы проверяем, поэтому я решил отправить ее в очередь на работу. Когда все задания завершены, тогда и только тогда мы хотим перезапустить наши приложения.

Есть ли очередь заданий, которая может это сделать? Я думаю, что самое близкое, что я видел, это сельдерей, так как он принимает результаты в базу данных.

Если вы используете linux, вы можете использовать что-то вроде Cron для автоматизации/планирования начала ваших заданий (например, 1 раз в день) в определенный момент и передать вывод этого задания скрипту [PHP](/tag5740), который может хранить время, которое ваша работа заканчивается в базе данных. У вас может быть второй «контрольный» PHP-скрипт, который будет работать чаще (например, каждые полчаса или что-то еще), которые будут запрашивать базу данных, чтобы проверить, завершены ли все ваши задания. Если все ваши задания на эту дату были помечены как «сделанные», вы можете использовать этот PHP-скрипт, чтобы начать перезапуск. Вам не нужно писать это на [PHP](/tag5740), и я уверен, что все это можно было бы записать на Perl или в качестве сценария оболочки или что-то еще - это был всего лишь пример, так как в ваших тегах был PHP.