【发布时间】:2012-03-25 14:43:22
【问题描述】:
Stackless python 允许您序列化任务(酸洗)以供以后执行,而无需在同一台机器上执行: http://www.stackless.com/wiki/Pickling
我的问题是,stackless python 是否提供任何类型的 IPC、中间件、服务代理或 DDS 技术来在进程和/或机器之间移动这些腌制任务?我们真的需要在这里使用套接字吗?
他们有一个很好的频道概念: http://www.stackless.com/wiki/Pickling
如果通道可以跨机器工作,那就太棒了,您可以简单地在网络上向服务代理注册通道。本质上,允许您将任务移动到位于不同机器上的不同无堆栈 python 服务。
【问题讨论】:
-
Celery 似乎是 cpython 的一种选择。不过,希望有一些更具体的无堆栈的东西。我相信两者都有一个“任务”概念,因此需要探索它们如何整合。
-
也许 Pyro 更像你所需要的
-
Pyro 很有帮助。我觉得它更像是一个通用的解决方案,虽然就像中间件的芹菜一样。我写这篇文章的目的是确保我没有从 stackless 中遗漏一些东西,这些东西可以实现某种开箱即用的分布式任务调度。如果没有提供 stackless 中的任何本机,我会接受一个显示简单的 python 中间件(celery、pyro 等)与 stackless 任务集成的答案。就个人而言,我决定不使用 stackless。
-
pyro 是一个很好的解决方案,它使用 pickle 进行序列化。
-
sPickle 声称它是实验性的。考虑一下,如果源存在,您可以轻松地自动获取模块的源。不必为它复制源树结构。所有源代码都可以保存到同一个目录,但名称稍有不同。存在源的一大优势是清晰的错误消息。
标签: python ipc data-distribution-service python-stackless