首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的链接工作池

Python中的链接工作池
EN

Stack Overflow用户
提问于 2013-01-19 20:35:56
回答 2查看 100关注 0票数 4

我正在尝试设置一个链接工作池的系统,如下所示:

代码语言:javascript
复制
 ╭────────╮                  ╭─────────╮                  ╭─────────╮
 │        ├──> Worker 1 ───> │         ├──> Worker 3 ───> │         │
 │  Data  ├──> Worker 1 ───> │  Queue  ├──> Worker 3 ───> │  Queue  ├───> Output
 │        ├──> Worker 1 ───> │         ├──> Worker 3 ───> │         │
 ╰────────╯                  ╰─────────╯                  ╰─────────╯ 
 ╭────────╮                     ^ ^ ^
 │        ├──> Worker 2 ────────┘ │ │
 │  Data  ├──> Worker 2 ──────────┘ │
 │        ├──> Worker 2 ────────────┘
 ╰────────╯                         

在我推出自己的通用解决方案之前,是否有任何现成的库(或干净的multiprocessing / threading示例)可供我使用?我不确定这种设置该叫什么,所以我在谷歌上搜索并没有给出多少有用的结果。

任何建议都很感谢!

EN

回答 2

Stack Overflow用户

发布于 2013-01-19 20:42:10

ZeroMQ是一个轻量级的解决方案,具有Python绑定。http://www.zeromq.org/bindings:python

票数 1
EN

Stack Overflow用户

发布于 2013-01-19 21:07:01

我以前看过Beanstalkd,它在处理多处理器是生产者和/或消费者的工作队列方面很棒,省去了对线程的担忧。

beanstalkc上有一个Python客户端

从他们的wiki中获取的例子。

代码语言:javascript
复制
>>> import beanstalkc
>>> beanstalk = beanstalkc.Connection(host='localhost', port=14711)
>>> beanstalk.put('hey!')
1
>>> job = beanstalk.reserve()
>>> job.body
'hey!'
>>> job.delete()

这可能会满足您的需求- IIRC您还可以拥有持久队列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14414419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档