Python - 同时运行多个脚本方法

时间:2017-01-05 19:22:45

标签: python

我有一堆.py脚本作为项目的一部分。其中一些我想开始并在后台跑步,而其他人则通过他们需要做的事情 例如,我有一个脚本,每隔10秒就会截取一次屏幕截图,直到脚本关闭,我希望在后台运行它,同时调用其他脚本并运行直到完成。

另一个例子是一个脚本,它计算指定文件夹中每个文件的哈希值。这有可能运行相当长的时间,所以如果其他脚本可以同时启动它们将是好的,这样他们就不必等待Hash脚本完成之前它们正在做的事情被调用。

多处理器是这​​种处理的正确方法,还是有另一种方法来实现这些更好的结果,例如这个答案:Run multiple python scripts concurrently

2 个答案:

答案 0 :(得分:0)

您还可以使用类似Celery的内容来运行异步任务,并且您可以从python代码中调用任务,而不是通过shell调用任务。

答案 1 :(得分:0)

这取决于。使用multiprocessing,您可以创建一个流程管理器,因此它可以按您希望的方式生成流程,但有更灵活的方法可以在不编码的情况下完成。多处理通常很难。

查看circus,它是一个用Python编写的流程管理器,您可以将其用作库,独立或通过远程API。您可以定义钩子来模拟进程之间的依赖关系see docs

一个简单的配置可能是:

[watcher:one-shot-script]
cmd = python script.py
numprocesses = 1
warmup_delay = 30

[watcher:snapshots]
cmd = python snapshots.py
numprocesses = 1
warmup_delay = 30

[watcher:hash]
cmd = python hashing.py
numprocesses = 1