2017-09-14 6 views
1

OSGIプロジェクトを開発中です。イベント管理、イベントの送信と処理を使用するサービスがたくさんあります。そして、それはイベント管理が単一のスレッドでイベントを処理するようだ。 handleEvent関数がアクティブになると、handleEvent関数が終了するまで他のハンドルイベント関数は起動しません。私はThread.sleep関数をテストしました。複数のスレッドでOSGI EventAdminハンドルイベントを作成する方法

イベント管理者がマルチスレッド形式でイベントを処理するための設定やパラメータがあるのだろうかと思います。

私はeclipse neon 3を使用しており、分かりやすくなっています。

答えて

0

これは、使用するイベントadmin implによって異なります。 felix eventadminの場合、デフォルトでは20個のスレッドが使用され、構成可能です。

eventAdmin.postEventを使用して、非同期配信を確実に行う必要があります。

+0

を読みますそれと。そして、私はpostEventを使いました。 – fyo

0

この仕様では、使用されるスレッドの数に余裕があります。しかし、高価な保証が1つあります。イベントは、指定されたハンドラに順番に配信されなければなりません。これはパラレルデリバリーを制限しますこの制約をハンドラに適用しないようにするサービスプロパティevent.delivery=async.unorderedを登録し、イベント管理者がイベントを配信する際に余裕を持てるようにすることができます。

私は日食ネオン3と春分を使用していています春分のバージョンは、イベント管理の詳細については一つのスレッドだけ...

を使用するだろうと信じて、それはかなり難しい見つける、チュートリアルOSGi Event Admin – Publish & Subscribe

関連する問題