質問: ScheduledThreadPoolExecutor#scheduleAtFixedRate で定期的にジョブを実行する場合、ジョブが実行間隔より長い時間をかけて実行されると、その間次のジョブ実行が遅延されますが、前のジョブが終わらない場合は新規のジョブ実行を中止させることは可能でしょうか?ジョブ側で Mutex を作って制御しないと無理でしょうか? daemontools で言うところの `setlock -n` 相当の動作をさせたいです。
回答: ScheduledThreadPoolExecutor#getQueue()#size()で滞留数をチェックできるのではないでしょうか。