Tomcat で cron4j を使用しています。
サーブレット内でスケジューリングを開始します
doGet(){
...
S.start();
...
}
このサーブレットを誤って再度呼び出した場合でも、この cron タスクを複数回開始しないようにするにはどうすればよいですか?
前にコメントしたように、1 回限りの初期化コードにはServletContextListener
またはメソッドのいずれかを使用することをお勧めします。Servlet.init()
ただし、答えが必要な場合は、それをdoGet()
一度だけ行う方法を次に宣言int counter=0
し、サーブレットで呼び出されるインスタンス変数を使用します。doGet()
increment thisの最初の呼び出し時counter=1
。カウンターの値を確認し、それが >0 の場合は再度初期化しないでください。同期ブロックを使用して値をインクリメントするか、揮発性として宣言してより凝ったものにすることができます。