定期的な繰り返しタスク等で、すぐに繰り返したくないけど、繰り返したいような場合があります。
こんなときは、一定期間スリープしてみましょう。
また、CPUを異常に使うようなバッチ系処理と他のオンライン系処理が同居(^^;)していたりすると、オンライン系処理に迷惑がかかったりします。
こんなときは、バッチ系処理に対して定期的なスリープをわざと仕掛けることで、処理を緩和するようなこともできます。
これまた良いか悪いかは置いといて・・・、緊急事態でしのぐには、簡単、かつ、それなりの効果を期待できます♪
寝る子は育つのですw
処理中に10秒間待つ(スリープする)サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class SleepTest { public static void main(String[] args) { System.out.println("1つ目~~♪"); //10秒待つ try { Thread.sleep(10 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("2つ目~~♪"); } } |
実行結果
「1つ目~~♪」と「2つ目~~♪」が標準出力されます。
「1つ目~~♪」はすぐに出力されますが、「2つ目~~♪」は10秒後に出力されます。
1 2 | 1つ目~~♪ 2つ目~~♪ |
サンプルの解説
java.lang.Threadクラスに用意されているsleep(long)を呼び出すと、一時的に処理を中断します。
Thread#sleepの引数は、単位がミリ秒の待ち時間です。
よって、1秒止めたい場合は、「1000」ミリ秒を指定します。