我正在寻找一种在脚本之间同步的机制(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
答案 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