bugfix> esper > 投稿

Esperイベント処理言語で作成された2つの異なる一致認識パターンがあり、これらを1つずつ実行すると正常に機能しますが、着信イベントでこれらのパターンの両方から結果を取得する必要があります。パターンは以下のように定義されます。

(1)

match_recognize( "
measures A as a, B as b "
pattern (A B) "
define "
A as A.scene= 'stock'and A.activity='assembly' and A.task='picking' and A.mod2='FT' and A.mod3='Scn', 
B as B.scene='stock' and B.activity='assembly' and B.task='picking' and B.mod2='PG' and B.mod3='GzS')

(2)

match_recognize( 
measures A as a, B as b, C as c 
pattern (A B C) 
define
A as A.scene= 'assembly'and A.activity='assembly' and A.task='moving' and A.mod2='GrS' and A.mod3='GzS', 
B as B.scene='assembly' and B.activity='assembly' and B.task='moving' and B.mod2='GrT' and B.mod3='Follow', 
C as C.scene='assembly' and C.activity='assembly' and C.task='moving' and C.mod2='GrT' and C.mod3='GzS')

これらのパターンのいずれかが単一のクエリで着信イベントと一致したときに結果を取得する必要があります。

回答 1 件
  • わかりましたので、問題は何ですか?両方を単純に作成し、それぞれにリスナーを追加して、すべて完了します。

    最初の例:

    String epl = "@name('first') select ... from ...;\n";
    epl += "@name('second') select ... from ...;\n";
    epAdministrator.getDeploymentAdmin().parseDeploy(epl);
    epAdministrator.getStatement('first').addListener(new MyListener());
    epAdministrator.getStatement('second').addListener(new MyListener());
    
    

    もう一つの例:

    EPStatement first = epAdministrator.createEPL(...);
    first.addListener(new MyUpdateListener());
    EPStatement second = epAdministrator.createEPL(...);
    second.addListener(new MyUpdateListener());
    
    

あなたの答え