スリングスレッドプールのスレッドが次の文を実行しないようにするにはどうすればよいですか。serv.getService()。start(tic、info);実行がすでに1つのスレッドによって完了している場合は、 を何回か使用しますか?スリングスレッドプール内の複数のスレッドが同じステートメントを実行しないようにするにはどうすればよいですか?
フラグ_alreadyExecutedを使用してみましたが、それは役に立たないようです。
ログイン:https://i.stack.imgur.com/x8jZw.png私のコードは次の通りである
、
private void sendBlock(service serv, String tic, Resource block,
Update update, Info info, ResourceResolver resolver) throws
IOException {
private Boolean _alreadyExecuted = Boolean.FALSE;
if(tic != null) {
String tic = null;
if(!_alreadyExecuted){
getLogger().info("Before startSubmission. Currently _alreadyexecuted is " +_alreadyExecuted);
serv.getService().start(tic, info);
getLogger().info("After startSubmission, _alreadyexecuted is about to change to true. Currently _alreadyexecuted is " +_alreadyExecuted);
_alreadyExecuted = Boolean.TRUE;
getLogger().info("After startSubmission, _alreadyexecuted has been changed to true. Currently _alreadyexecuted is " +_alreadyExecuted);
}
}
}
あなたの質問は既に回答済みですが、あなたのユースケースが何だったか尋ねることができますか?私は私のAEMプロジェクトで揮発性を使う必要性に遭遇したことはありません。 – mickleroy
ジョブの処理中に、ジョブスレッドプールの2つのスレッドが同じステートメントを実行して、重複要求が発生しました。これは問題を引き起こしていました。 – Grace