首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的数据流计算

python中的数据流计算
EN

Stack Overflow用户
提问于 2011-03-28 16:19:43
回答 2查看 5.3K关注 0票数 15

我有n个进程(通常为n< 10,但它应该扩展),进程在不同的机器上运行,并使用RabbitMQ通过amqp进行通信。进程通常是长时间运行的,可以用任何语言实现(尽管大多数是java/python)。

每个进程都需要大量的输入(数字/字符串),并产生许多输出(也只是数字或字符串)。进程异步执行:在其输入队列上发送消息,等待输出队列触发回调。

理想情况下,用户指定一些输入和期望的输出,系统应该:

  • 检测需要哪些进程并生成依赖关系图
  • 从拓扑上对图进行排序并执行它,节点转换将需要事件驱动。

如果输入就绪,节点应该触发,允许每个分支并行。现在我可以假设没有循环,但最终会出现循环(例如,两个流程可能需要迭代,直到输出不再更改)。

这应该是(数据)流编程(之前在这里讨论过)中的一个已知问题,我希望避免重新发明轮子。我更喜欢python解决方案,搜索会导致格架Pypes。网格不再发展,但似乎支持周期,而pypes则不支持循环。也不确定pypes的开发有多活跃。

进一步搜索展示一个完整的基于事件的编程框架列表,我对其中任何一个都不了解。当然,有一些像塔韦纳克尼梅这样的工作流环境,但这似乎有点过分了。

是否有人有处理这类问题的经验,或曾与上述图书馆接触?

编辑:我找到的其他库有:

  • zflow
  • pyf
  • javafbp (Java)
EN

回答 2

Stack Overflow用户

发布于 2012-10-18 00:46:45

python.org有一个关于“基于流的编程”的Wiki页面-- http://wiki.python.org/moin/FlowBasedProgramming

票数 5
EN

Stack Overflow用户

发布于 2011-04-26 07:10:24

底线是,如果你能在一小部分代码行(几百行)中重新发明你完全理解并可以记录的代码,那就去做吧。

考虑到一些基本的基础工具,在这个领域中使用的抽象并不难实现。RabbitMQ就是这样一个工具。Node.js是另一个。有很多库实现了有用的方法来管理数据流、工作流、有限状态机等,但是它们有很多重叠,而且它们往往是不完整的。可能最初的开发人员只是构建了足够多的程序来解决他最初的问题,而且由于这种类型的编程不那么流行,所以没有足够的数量来继续开发。

要按受欢迎程度对所有可能的解决方案进行排序,选择最受欢迎的解决方案,并将您的努力投入到工作中(当然,也要分享您的工作),还有很多要说的。

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

https://stackoverflow.com/questions/5461974

复制
相关文章

相似问题

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