2016-09-29 20 views
0

私はspring @Asyncアノテーションを使用して特定のタスクを実行します。いくつかの点(おそらくプールサイズに達したためかもしれません)では、@Asyncのメソッドが呼び出されたが、メソッドのブレークポイントに達していないことがデバッガで分かります。別の@Asyncメソッドが終了したとき、またはそれが永久にスキップされたときに呼び出されることはわかりません。Spring @Asyncアノテーションが実行されていないメソッド

実行するために空き@Asyncがない場合に例外をトリガできるかどうかを知りたいと思います。いくつかの時点で、また

、どのように私は現在、任意の時点で使用されているどのように多くの@Async知ることができる

おかげ アビ

答えて

1

は(多分プールサイズに達したために)私が見ます@Asyncのメソッドが呼び出されたが、メソッドのブレークポイントに達していないことをデバッガで確認します。

条件付きでブロックされていない場合は、コードフラグメントは確実ですか?有効なコードサンプルがなければ、この時点でしか推測できません。

実行するために空き@Asyncがない場合に例外をトリガできるかどうかを知りたいと思います。

この場合、通常TimeoutExceptionがスローされます。 Springの設定XMLに以下を追加することで、タイムアウト値を変更できます。私はあなたがアクティブにしたとき@Asyncが現在

通常、任意の時点で使用されているどのように多くを知ることができる方法に加えてProviding a timeout value when using @Async for a method using Spring 3.0

、:

<mvc:annotation-driven> 
    <mvc:async-support default-timeout="180"/> 
</mvc:annotation-driven> 

が代わりにこの答えを見て例えば、 @Asyncメソッド内で実行されるコードの中にsl4jがある場合、次の出力が表示されます。

2017-03-10 10:27:41,910 [SimpleAsyncTaskExecutor-1] DEBUG 
2017-03-10 10:27:43,282 [SimpleAsyncTaskExecutor-2] DEBUG 

これが役立つことを願っています!

関連する問題