gpt4 book ai didi

使用 Timer#schedule 的 Java TimerTask 永远不会运行

转载 作者:行者123 更新时间:2023-12-02 05:52:23 25 4
gpt4 key购买 nike

我正在尝试让 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,但我使用它的方式与我在其他所有类(class)中所做的完全一样,而且效果很好。无论如何,我使用 Jetty 来运行 Web 服务器,因此在启动服务器的类的 main 方法中调用上面的 schedule 函数。

最佳答案

看方法Timer#schedule(TimerTask task,long delay,long period)您使用过的 Timer 类。

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 作为运行任务的很长时间的延迟。

关于使用 Timer#schedule 的 Java TimerTask 永远不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com