Существуют ли функции / команды, которые помогут нескольким сценариям выполнить определенную точку и продолжить? - PullRequest
0 голосов
/ 20 октября 2011

Я ищу механизм для синхронизации между скриптами (bash, perl или Python). Мое требование следующее:

Запускаются скрипты a, b и c (необязательно одновременно).Как только a, b или c достигают определенной точки в сценарии, он должен остановиться, чтобы другие сценарии достигли той же точки.Для обсуждения давайте назовем их синхроточками.После того, как синхроточка нажата всеми сценариями, все скрипты могут перейти к следующей синхроточке или концу скрипта

Вот пример

Скрипт

task1
task2
task3
syncpoint 1
task4
task5
syncpoint 2

Скрипт 2

task1
syncpoint 1
task2
task3
task4
syncpoint 2
task5
syncpoint 3

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Это не просто.Но хорошая новость в том, что это очень хорошо понято.

Начните здесь: http://en.wikipedia.org/wiki/Job_scheduler

Затем прочитайте это: http://en.wikipedia.org/wiki/List_of_job_scheduler_software

Возможно, вы хотите что-то вроде http://en.wikipedia.org/wiki/Simple_Linux_Utility_for_Resource_Management

0 голосов
/ 21 октября 2011

Предполагая, что все сценарии являются python, самым простым решением было бы написание функций, которые импортируют (и таким образом запускают) другие сценарии. укажите на эти функции с помощью многопроцессорного или многопоточного модуля. Теперь, когда каждый скрипт выполняется в своем собственном процессе или потоке, вы можете использовать объекты условий и методы .wait () .notify (), чтобы они останавливались и ждали друг друга.

Всю документацию по реализации такой вещи можно найти здесь. http://docs.python.org/library/threading.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...