[英]Java TimerTask using Timer#schedule never runs
我正在嘗試讓Java(1.7)重復TimerTask
工作,例如
TokenJanitor janitor = new TokenJanitor( TokenManager.getInstance() );
try {
new Timer().schedule(janitor, System.currentTimeMillis()+15000, 15000);
LOG.info("TokenJanitor is running...");
...
然后TokenJanitor
是一個TimerTask
例如
public class TokenJanitor extends TimerTask {
@Override
public void run() {
LOG.info("Running TokenJanitor cleanup now...");
System.out.println("Hello..."); // just for good measure
它甚至沒有運行一次。 我在調用schedule
函數后看到了日志消息,但是我看不到TimerTask
任何日志消息或打印輸出。 我正在使用log4j,但我正在使用它,就像我在其他所有類中一樣,它工作正常。 為了它的價值,我使用Jetty來運行Web服務器,因此上面的schedule
函數在啟動服務器的類的main方法中調用。
查看您使用Timer
類的Timer#schedule(TimerTask任務,長延遲,長時間段)方法 。
task - task to be scheduled.
delay - delay in milliseconds before task is to be executed.
period - time in milliseconds between successive task executions.
您已將System.currentTimeMillis()+15000
指定為延遲,這是運行任務的非常長的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.