有沒有什麼辦法在java中編寫程序,以便它的主要方法調度(或以10-15分鐘的間隔)另一種方法在特定的時間間隔執行它?如何在java的特定時間執行方法?
0
A
回答
1
我認爲你正在尋找的時間類。
見Timer Class API 你可以使用這個類,如:
要執行一個方法每600毫秒。你寫:
ActionListener taskPerformer = new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
//Do your stuff
}
};
Timer t = new Timer(600, taskPerfomer);
t.start;
有更多的選項。這個例子將被執行一次,但它可以間隔執行。 我希望它有幫助。
+1
該解決方案只能單次執行該方法。如果你想以微粒間隔執行它,你必須使用調度程序。 – Nitul
4
您可以使用Job scheduler來做到這一點。即
石英Job Scheduler。
請參閱本Quartz API
或者 您可以使用ScheduledExecutorService的Java接口
請參閱本Documentation
1
使用預定線程池執行程序: 安排工作線程每隔10秒執行一次 scheduledThreadPool.schedule(worker,10,TimeUnit.SECONDS);
1)班的WorkerThread的.java
public class WorkerThread implements Runnable{
private String command;
public WorkerThread(String s){
this.command=s;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" Start. Time = "+new Date());
processCommand();
System.out.println(Thread.currentThread().getName()+" End. Time = "+new Date());
}
private void processCommand() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public String toString(){
return this.command;
}
}
2)班ScheduledThreadPool的.java
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledThreadPool {
public static void main(String[] args) throws InterruptedException {
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
//schedule to run after sometime
System.out.println("Current Time = "+new Date());
for(int i=0; i<3; i++){
Thread.sleep(1000);
WorkerThread worker = new WorkerThread("do heavy processing");
scheduledThreadPool.schedule(worker, 10, TimeUnit.SECONDS);
}
//add some delay to let some threads spawn by scheduler
Thread.sleep(30000);
scheduledThreadPool.shutdown();
while(!scheduledThreadPool.isTerminated()){
//wait for all tasks to finish
}
System.out.println("Finished all threads");
}
}
-1
如果你的任務不是那麼大,你可以使用Thread.sleep()
方法(例如10迭代與10分鐘延遲):
public static void main(String[] args) throws InterruptedException {
methodOne();
for (int i = 0; i < 10; i++) {
Thread.sleep(600000);
methodTwo();
}
}
相關問題
- 1. C++ 11計時庫 - 如何在特定的時間間隔後執行方法?
- 2. Java - 在特定日期執行方法
- 3. 如何在特定的時間在java執行代碼
- 4. JAVA:如何在特定時間後停止函數的執行?
- 5. 如何在特定日期和時間運行特定方法?
- 6. 在特定方法執行時通知
- 7. Java執行程序在特定時間的時間範圍
- 8. java中的方法執行時間
- 9. 如何設置在java中執行一些方法的時間?
- 10. 如何在java中修復某個方法的特定時間
- 11. 如何在java中調用特定時間的方法?
- 12. 執行的方法來檢查的時間和特定的時間執行的方法
- 13. 如何讓我的方法在特定的日期/時間執行?
- 14. Java:以指定的時間間隔執行方法
- 15. 調度java方法在onbiz的特定時間運行使用
- 16. 在Java中的特定時間運行程序或方法
- 17. 如何在每個特定時間在Windows Phone 8上執行一個方法?
- 18. 如何在特定的時間間隔內執行JavaScript代碼?
- 19. 在特定的時間執行功能
- 20. 在特定的時間執行查詢
- 21. 如何估計方法執行時間?
- 22. 每天在特定時間運行Java方法
- 23. 在特定的時間間隔後執行任務的正確方法
- 24. 在特定時間後執行代碼
- 25. 在特定時間執行事件
- 26. 程序在特定時間執行
- 27. 在特定時間執行功能
- 28. 在特定時間執行sql查詢
- 29. 在特定時間執行選擇器
- 30. 在特定時間執行html
您可以使用調度http://quartz-scheduler.org/ –
ÿ你可以使用cron作業。 – Thilo