我正在使用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(具有部分信息)等的代码。那闻起来有些问题。
我的用例是否还有其他模式?谢谢你的任何指示。