updateIndex()
を1分ごとに実行するために使用しているScheduledExecutorService
があります。しかし、最後のリフレッシュと次のリフレッシュの間に1分の間にリソースが変更された場合は、すぐにupdateIndex()
を呼び出してから、実行者サービスに通常のスケジュールを再開させてもらいたい。次の更新が1分以内に行われる。しかし、私はドキュメントにこれを行う機能があることを示唆するものは何も見ていません。何か案は?ScheduledExecutorServiceを中断する方法
1
A
答えて
1
public static void updateIndex() {
Runnable runnable =() -> {
//Do your logic here
};
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.MINUTES);
}
JavaDocsの
java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
所定の初期遅延の後、続いて所定の周期で最初に有効になる周期的なアクションを作成し、実行によります。つまり、initialDelay、initialDelay + period、initialDelay + 2 * periodの後に実行が開始されます。タスクの実行によって例外が発生すると、後続の実行は抑制されます。それ以外の場合、タスクはエグゼキュータのキャンセルまたは終了によってのみ終了します。このタスクの実行に期間よりも時間がかかる場合、後続の実行は遅く開始されますが、同時に実行されることはありません。
0
scheduleAtFixedRate()
は、cancel
メソッドを持つFutureであるScheduledFutureを返します。
関連する問題
- 1. 中断する方法Ext.each
- 2. ES6 MapでforEachを中断/中断する方法は?
- 3. ScheduledExecutorServiceは具体的なタスクの定期的な実行を中断します
- 4. Pythonでインポートループを中断する方法
- 5. シグナルがシステムコールを中断する方法
- 6. whileループを中断する方法は?
- 7. ブロッキングaccept()コールを中断する方法
- 8. Delphi 5:アンカーレイアウトを中断する方法
- 9. ExecutorServiceのスレッドを中断する方法
- 10. Java - ビジースレッドを中断する方法
- 11. gitブランチを中断する方法は?
- 12. windows.printのページを中断する方法
- 13. トークバックイベントを中断する方法
- 14. ALAnimatedSpeechを中断する方法
- 15. RegexMatcherループを中断する方法
- 16. Java、スレッドを中断(中断)
- 17. ARKit:中断後にワールド方向をリセットする方法
- 18. ScheduledExecutorService
- 19. スカラスイングでウィンドウを閉じるメカニズムを中断する方法
- 20. UIViewがperformSelectorを中断するのを止める方法
- 21. jQueryUIのツールチップの中断方法
- 22. POSIXスレッド:最高の中断方法
- 23. Verticaのスクリプトの実行を中断または中断する(またはエラーを発生させる)方法
- 24. 段落で中断するリンクを作る方法
- 25. Bluetoothで中断しているスレッドを停止する方法
- 26. PyCharm - すべてのスレッドを中断する方法
- 27. マラソンAPIを使用してジョブを中断する方法
- 28. ソケットを開く場合にスレッドを中断する方法は?
- 29. Nodejsのif文を持つforループを中断する方法
- 30. 着信を待つJavaでスレッドを中断する方法
Runnableコマンドの実行間に待機期間があるため、エグゼキュータを中断することはできませんか? \t \tのDateTime CURRENTTIME =新しいのDateTime();; \t \t CURRENTTIME = currentTime.plus(> yourlogicmethod() - – fojalar
あなたは、実行可能な使用scheduledExecuter –
ScheduledFuture >スケジューラは= scheduledExecutor \t \t \t \t .scheduleを(()中断することができますscheduler.getDelay(TimeUnit.MILLISECONDS)); –