【问题标题】:What is the preferred method for TCP/IP IPC in stackless Python?无堆栈 Python 中 TCP/IP IPC 的首选方法是什么?
【发布时间】: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


【解决方案1】:

stacklessexamples 项目列出了许多实现networking 的方法;与您的问题最密切相关的可能是 rpc 示例。

【讨论】:

  • 将为您的研究提供 +1。我正在寻找更多面向示例的答案,并且在本质上更直接地进行分布式计算……与仅 RPC 相比。我想要一些可以捆绑远程执行代码并且相当简单的东西,即不是编组和套接字,而是更多基于 Channel/Broker/Task 的 API。就个人而言,我决定不使用 stackless,但希望将其保持开放以供其他输入,或者也许有人为此类功能做了一个库并想发表评论。
  • 在公开两年后,我将把它交给你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 2010-10-10
  • 1970-01-01
  • 2012-05-21
相关资源
最近更新 更多