2016-07-18 18 views
3

這裏我的代碼,在我的scheduleAtFixedRate方法中,我放了延遲時間來開始運行該方法。但這個延遲時間不能工作和運行立刻

static ScheduledExecutorService scheduler = null; 
scheduler.scheduleAtFixedRate(new Testing(),60, 24*60*60,TimeUnit.SECONDS); 


public static Runnable Testing() 
{ System.out.println("Testing..."); 
} 

我想打電話給了Runnable()方法60幾秒鐘之後,但是當我運行的代碼就立刻調用此方法。 我的代碼中是否有任何問題。 我是新的scheduleAtFixedRate方法。 謝謝:)

+0

什麼是Runnable?靜態類或方法 – Arjit

+0

Sry,我再次編輯。 – Alice

+0

不從測試返回可運行類型() – Arjit

回答

1

請試試這個

scheduler.scheduleAtFixedRate(new Runnable() { 
    @Override 
    public void run() { 
    System.out.println("Testing..."); 
    } 
}, 60, 24*60*60,TimeUnit.SECONDS); 
+0

好吧,讓我先嚐試,稍後我會回覆。謝謝。 – Alice

+0

https://www.codiva.io/p/d1bfeb1f-0895-4c72-b5fb-d99cfb05051b – JackDaniels

+0

它的工作。 :)但是我的方法有什麼不同。其實這種方法只有一行,對嗎? – Alice

0

創建擴展了Runnable類。

static class MyRunnable implements Runnable { 
    public void run() { 
     System.out.println(i + " : Testing ... Current timestamp: " + new Date()); 
     // Put any relevant code here. 
    } 
    } 

然後您的代碼按預期工作。嘗試在codiva.io online compiler ide處運行完整的工作代碼。

相關建議,在專業代碼中,人們通常避免使用線程調度程序來運行每日運行的任務。最常見的選擇是使用cron作業和更多的設置。但是,這是在這個問題的範圍外。

+0

謝謝你回答:)。 – Alice

+0

這是否回答您的問題? – JackDaniels

+0

相似,但我已經得到了我的答案與第一個答案,也感謝您的答案:) – Alice

0

Runnable是一個接口,您必須實現run()方法。您可以嘗試將您的代碼更改爲

 


    scheduler.scheduleAtFixedRate(new Runnable() { 
     @Override 
     public void run() { 
      System.out.println("Testing..."); 
     } 
    },60, 24*60*60,TimeUnit.SECONDS);