簡體   English   中英

使用Timer#schedule的Java TimerTask永遠不會運行

[英]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.

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