0

プール スレッドの実行開始時に実行する特別なコードと、終了時に別のコードを実行します。

つまり、スレッド固有のリソース (例としてデータベース接続) を初期化し、クリーンアップ (既に開いている接続を閉じる) のために、スレッドがアクター コードの実行を開始する前に initialize() を呼び出し、その後に cleanup() を呼び出す必要があります。 )

スレッドスコープでそれを行うのは素晴らしいことです。すべてのアクターが混在するトレイトでやろうと思っているのですが、このスコープではアクターごとに初期化しています。糸で作った方がパフォーマンスが上がると思います。

どんな提案でも大歓迎です!

ありがとう

4

1 に答える 1

0

特にクリーンアップ コードでは、使用できるフックがないため、問題が発生します。アクターのライフサイクルを使用してリソースのライフサイクルをモデル化することをお勧めします。つまり、アクターを開始して postStop で閉じるときに 1 つの DB 接続を作成します。次に、ThreadLocal データベース ハンドルを使用する代わりに、DB クエリをアクター (のプール) に送信します。自分でスレッドについて心配する必要はありません。それが Akka の仕事です。

于 2013-08-06T18:22:47.223 に答える