为计算节点选择正确的设计模式

时间:2013-10-13 10:45:20

标签: python multithreading design-patterns parallel-processing

我必须在节点A,B,C(D,E ......)中一个接一个地运行几个计算。每个节点对应于具有计算方法的类。在以下方案中,Ax,Bx,Cx是A,B,C的实例,并允许运行计算,创建一些图表等。 data flow

我有以下要求:

  • 我有一个分布式系统(例如Cloud)和我 希望在A中的数据之后处理B1中的数据 输出等(节点必须同步);
  • 类似节点中的所有计算都可以并行执行;
  • 每个节点的计算结果必须在某个时刻保存和加载。这在计算A中的数据并且之后整个系统关闭的情况下是有用的。我希望能够恢复。目标也是通过重新运行系统的过去状态来执行一些维护(例如,用于错误跟踪);
  • 我希望能够监控系统的当前状态。

我打算采用状态设计模式,但这似乎不够,或者我没有正确的实施想法。

这本身就是一个很大的主题,所以我很乐意从设计模式,多线程处理,API,中间件等方面获得想法。

(顺便说一下,我使用的是Python,但我认为提及它并不是很相关)

1 个答案:

答案 0 :(得分:1)

python多任务处理的成功设计是队列链模型。如果您的steps(A,B,Cs)数量有限。然后可以将每个任务推入队列,一旦排队任务完成,队列就可以发出完成信号。从而可以保存数据并将其推送到后续队列中。  相关的documentation

查看python恶魔线程来管理线程生命周期。