是否有可用的函数/命令可以帮助多个脚本执行到某个点并继续执行?

时间:2011-10-20 19:01:24

标签: python perl bash sync

我正在寻找一种在脚本之间同步的机制(bash或perl或Python)我的要求如下

脚本a,b和c将开始(不一定是同时)。一旦a,b或c命中脚本中的某个点,它应该停止其他脚本达到相同的点。为了便于讨论,我们将它们称为同步点。一旦同步点被所有脚本命中,所有脚本都可以进入下一个同步点或脚本结束

这是一个例子

脚本a

task1
task2
task3
syncpoint 1
task4
task5
syncpoint 2

脚本2

task1
syncpoint 1
task2
task3
task4
syncpoint 2
task5
syncpoint 3

2 个答案:

答案 0 :(得分:1)

这并不简单。但好消息是它非常清楚。

从这里开始: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

之类的内容

答案 1 :(得分:0)

假设所有脚本都是python,最简单的解决方案是编写导入(从而运行)其他脚本的函数。使用多处理或线程模块指向这些函数。现在您已经在自己的进程或线程中运行了每个脚本,您可以使用条件对象和.wait().notify()方法让它们停止并相互等待。

可以在此处找到实现此类操作的所有文档。 http://docs.python.org/library/threading.html