私は現在、プログラム用のサーブレットを開発するプロジェクトに取り組んでいます。
このサーブレットはリクエストをリッスンしません。代わりに、バックグラウンドで実行して 10 秒ごとに実行するようにします。
私はThread.sleep(10000);
これを達成するために使用しています。
このサーブレットを 10 秒ごとに実行し、同時に他のプロセスを実行できるようにする最善の方法は何ですか?
これにはサーブレットを使用しないでください。サーブレットはリクエストに応答するように特別に設計されているため、確実に機能するわけではありません。代わりに、ServletContextInitializerを使用して、バックグラウンド作業を行う TimerTask をスケジュールします。
SingleThreadPool を使用して、QuartzScheduler を使用して実行できます。したがって、構成ファイルのみを変更することで、実行する頻度を変更できます。スレッドがジョブになり、優先度を割り当てることができます。
読むべきドキュメントは次のとおりです。