2017-03-14 9 views
0

これは、私がフリンクストリーミングを介して対処する予定の特定の使用例に関するものです。条件が満たされるまで、キューからメッセージを残さずにメッセージを処理する方法はありますか?

メッセージがフリンクストリーム処理に送信されると、ストリームはキー入力され、したがって期待どおりに分割されます。しかしながら、キー毎の各メッセージは、条件が満たされるまで評価される必要がある。アカウントのアカウントトランザクション(メッセージ)を順番に処理する必要があるバンキングシステムがあり、システム状態が一貫しないため、順序どおりにメッセージを処理できないとします。システムは、次のメッセージを順番に処理する前に、メッセージが処理されるのを待つ必要があります(多分2-3日以上)。他のキーと関連付けることができるメッセージ処理の部分をブロックすることなく、これをどのようにして実現できますか?

ありがとうございます!

答えて

0

CEPライブラリーを見ましたか?次のようなパターンを指定できます:

Pattern<Event, ?> pattern = Pattern.<Event>begin("firstOfSequence").where(new FilterFunction<Event>() { 
    private static final long serialVersionUID = 5726188262756267490L; 

    @Override 
    public boolean filter(Event value) throws Exception { 
     return value.isFirstOfSequence(); 
    } 
}).followedBy("secondOfSequence").where(new FilterFunction<Event>() { 
    private static final long serialVersionUID = 5726188262756267490L; 

    @Override 
    public boolean filter(Event value) throws Exception { 
     return value.isSecondOfSequence(); 
    } 
}); 
関連する問題