使用akka处理无序事件以生成图形

时间:2016-04-14 07:16:11

标签: design-patterns graph akka

我正在使用akka处理事件数据并在内存中生成图形的节点和边缘(一旦生成完整的子图,我稍后将其推送到graphdb)。这些事件有时是无序的,所以这是一个挑战。让我试着解释一下情况。

假设有4种类型的事件:A,B,C和D.它们产生以下结果:

A: Node M   
B: Node N, Edge (M-N)
C: Node P, Edge (N-P)
D: Edge (M-P)

如果事件按顺序进行,一切都很好。但是,让我们说B出现在A.之前。在这种情况下,我还必须创建具有部分信息的节点M,然后放入边缘M-N。类似地,如果D出现在任何事件之前,我将不得不创建具有部分信息的M和P节点,并创建M-P边缘。当我收到相应的事件时,我会在稍后填写M和P节点的其余信息。

我为每种事件类型编写了akka处理器。但是,在这种模式中,我不得不在每个事件处理器代码中重复“每种类型的部分节点创建”的代码。例如,事件B,C和D的处理器参与者都重复用于创建节点M(具有部分信息)等的代码。那闻起来有些问题。

我的用例是否还有其他模式?谢谢你的任何指示。

0 个答案:

没有答案