繁体   English   中英

带参数的并行过程

[英]parallel processes with arguments

我正在研究Google App Engine,起初做了这样的事情:

queue = multiprocessing.Queue() 

cs = multiprocessing.Process(name='control_service', target=control_service_func, args=(queue,))
cs.daemon = True

m = multiprocessing.Process(name='machine', target=machine_func, args=(queue,))
m.daemon = True

cs.start()
m.start()

但后来意识到Google引擎不支持多处理模块。

所以我需要其他一些工具。.我看到对于并行进程,我可以使用Popen,但是所有示例都类似:

Popen(['/bin/sh', '-c', args[0], args[1], ...])

就像从外壳一样运行命令...

我需要创建两个并行运行的进程,每个进程都有自己的功能(在我的示例中为目标,该参数作为队列)

我怎样才能做到这一点 ?

App Engine有自己的处理模型-包括自己的队列(实际上有两种:“推送”队列和“拉”队列)。 使用推送队列(更简单,并由App Engine后端为您更全面地管理)和模块来处理该队列上的请求-根据您的工作负载,您可能会透明地最终使用多台服务器&c(App Engine将照顾好这种缩放比例)。

您将获得一些收益(自动缩放和结构化),而您失去一些收益(对在何处运行哪些进程的精细控制)。 如果权衡不适合您,则App Engine(或其他PaaS设置)可能不适合您-您可能需要较低的抽象杠杆,即IaaS设置,例如Google的Compute Engine。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM