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

发布于 2024-12-10 19:04:50 字数 378 浏览 0 评论 0原文

我正在寻找一种在脚本(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

I am looking for a mechanism to sync between scripts (bash or perl or Python) My requirement is as follows

Scripts a, b and c will start (not necessarily at the same time). Once a, b, or c hits a certain point in the script, it should stop for other scripts to hit the same point. For the sake of discussion lets call these as syncpoints. Once the syncpoint is hit, by all scripts, all scripts can proceed to next syncpoint or end of script

Here is an example

Script a

task1
task2
task3
syncpoint 1
task4
task5
syncpoint 2

Script 2

task1
syncpoint 1
task2
task3
task4
syncpoint 2
task5
syncpoint 3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少钕鈤記 2024-12-17 19:04:50

这并不简单。但好消息是它很好理解。

从这里开始:http://en.wikipedia.org/wiki/Job_scheduler

然后阅读以下内容:< a href="http://en.wikipedia.org/wiki/List_of_job_scheduler_software" rel="nofollow">http://en.wikipedia.org/wiki/List_of_job_scheduler_software

您可能想要类似 http://en.wikipedia.org/wiki/Simple_Linux_Utility_for_Resource_Management

This isn't simple. But the good news is that it's very well understood.

Start here: http://en.wikipedia.org/wiki/Job_scheduler

Then read this: http://en.wikipedia.org/wiki/List_of_job_scheduler_software

You probably want something like http://en.wikipedia.org/wiki/Simple_Linux_Utility_for_Resource_Management

愿得七秒忆 2024-12-17 19:04:50

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

实现这样的事情的所有文档都可以在这里找到。
http://docs.python.org/library/threading.html

Assuming all the scripts are python the easiest solution would be to write functions that imports(and thus runs) the other scripts. point to these functions with either the multiprocessing or threading module. Now that you have each script running in its own process or thread, you can use condition objects and the .wait() .notify() methods to have them stop and wait on each other.

All the documentation to implement such a thing can be found here.
http://docs.python.org/library/threading.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文