2016-09-21 1 views
0

受信イベントにuserIdプロパティが含まれています。私はCQEngineからuserIdに従ってパラメータ値を読むことができるようにしたいと思います。これをFunctionExecutorの拡張として実装し、それを次のように使用する必要があります。Siddhi CQEngineはフィルタセクション内で使用されます

define stream cseEventStream (userId string, symbol string, price long, volume long); 
@info(name = 'query1') 
from cseEventStream [price < custom:cache(userId)] 
select * 
insert into Output 

またはそれを行う方法がいくつかあります。問題は、CQEngineを初めて使用する前にデータで初期化する必要があることです。おそらくFunctionExecutorの "start"メソッドがこの目的のために使用できますか?

答えて

0

FunctionExecutorに進み、init()またはstart()のいずれかの初期化ロジックを実装できます。両方とも、関数の使用ごとに1回呼び出されます。通話の注文はinit()、それに続いてstart()です。ただし、APIドキュメントごとに、start()を使用して、処理要素に必要なリソースを取得することをお勧めします。取得したリソースを解放するにはstop()

+0

こんにちは。ご回答いただきありがとうございます。その間、私はそれを実装することができたし、それは動作します。しかし、FunctionExecutorエクステンションにSpringフレームワークBeanを注入する方法はありますか?私の心に来る唯一の方法は、サービスロケータです。あなたはそれをどうやって他のアイデアを持っていますか?ありがとうございました。 – yshadow

関連する問題