簡體   English   中英

用Java安排任務

[英]Scheduling tasks in Java

我已經用Java編寫了代碼,如下所示:

....
while (conditionX) {
  //fetch m
  ....
  t = new Thread(new SomeRunnable(m));
  t.start();
  Thread.sleep(500);
}
....

class SomeRunnable implements Runnable {
  String msisdn;
  public SomeRunnable (String m) {
    msisdn = m;
  }
  @Override
  public void run() {
    do {
      //Statement block S uses msisdn, sets condition Y
      Thread.sleep(30000);    
    } while (conditionY);
  }
}

我對代碼中使用的Thread.sleep()感到不滿意。 為了避免這種情況,我嘗試了ScheduledExecutor等,但無法真正找到一種執行我想要的方法的方法。
在啟動新線程之前,我需要半秒的延遲 ,並且在該線程中,必須再次延遲30 s才能再次嘗試執行語句塊S。

請幫助我以更好的方式使用適當的類對此進行編碼。
我只是提供了有關代碼工作流程的想法,如果我需要提供更多信息,請告訴我。

謝謝

您可以實現TimerTask並覆蓋run() 然后,您可以使用以下命令定期安排任務:

Timer myTimer = new Timer();
timer.scheduleAtFixedRate(new MyTimerTask(), 500L, 30000L);

當您想取消任務時,可以通過調用cancel()來做到這一點。

如果您使用Spring來配置Bean,則可以只專注於實現業務邏輯,並利用Spring的鈎子來管理任務,計划等。

http://static.springsource.org/spring/docs/1.2.x/reference/scheduling.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM