このようなメソッドを呼び出すと:
@Asynchronous
public void cantstopme() {
for(;;);
}
それは永久に実行されますか、それとも Application Server は特定の時間後にそれを強制終了しますか?
このようなメソッドを呼び出すと:
@Asynchronous
public void cantstopme() {
for(;;);
}
それは永久に実行されますか、それとも Application Server は特定の時間後にそれを強制終了しますか?
アノテーションが付けられたメソッドが誰かによって呼び出されるたびに@Asynchronous
、メソッドが実際にかかる時間に関係なく、すぐに戻ります。
Future
各呼び出しは、基本的に空で始まり、関連するメソッド呼び出しが実際に完了したときにコンテナーによって値が埋められるオブジェクトを返す必要があります。
例えば:
@Asynchronous
public Future<String> cantstopme() {
}
そして、次のように呼び出します。
final Future<String> request = cantstopme();
そして後で、特定のタイムアウトで Future.get() メソッドを使用して結果を求めることができます。
request.get(10, TimeUnit.SECONDS);