java - java中的定时器和TimerTask

标签 java

我想每天晚上 5 点使用 Java Timer 和 TimerTask 做一份工作。 请帮我解决这个问题。

我认为以下方法存在问题...

schedule(TimerTask task, Date time)

----只能为第一天指定日期,不能为接下来可用的日子指定日期。

schedule(TimerTask task, Date firstTime, long period)

----可以给出初始开始时间和执行多长时间后, 在这里,如果我在晚上 4 点开始我的调度程序,那么如何提及下一个执行时间。如果我设置 1 小时延迟,它将每隔一小时调用一次。

schedule(TimerTask task, long delay)

--这是不适用的,它将根据开始时间做事。

schedule(TimerTask task, long delay, long period)

--这是不适用的,它将根据开始时间做事。

最佳答案

我建议你切换到Quartz Cron Trigger非常轻便且易于使用

SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
//Job1 is scheduled to run everyday evening at 5 O' clock

JobDetail job = newJob(SimpleJob.class)
    .withIdentity("job1", "group1")
    .build();

CronTrigger trigger = newTrigger()
    .withIdentity("trigger1", "group1")
    .withSchedule(cronSchedule("0 0 17 * * ?"))
    .build();

sched.scheduleJob(job, trigger);

关于java - java中的定时器和TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456064/

相关文章:

java - 暂停时终止应用程序

java - 有没有办法使基于 Ehcache 文件的配置覆盖编程配置?

Java Spring IOC bean创建值(value)

java - javafx 中 TableColumn 的 setCellValueFactory 不会为一个值输入文本,但会添加空格

java - 退出java程序时出现问题,代码为 'Q'

java - 作为一个对 Java 有基本了解的学生,我可以转向 Android 吗?

java - 如何使用 Eclipse 创建通用启动配置?

java - 如何在尝试执行注册 Activity 时修复 Android 中的 "com.android.Volley.TimeoutError"

java - 如何使用 libgdx 获取触摸事件 TouchUp

java - 有没有办法在继承中设置构造函数