gpt4 book ai didi

Java TimerTask - 在 XX :MM hours everyday 运行任务

转载 作者:行者123 更新时间:2023-11-30 07:21:18 24 4
gpt4 key购买 nike

使用 Timer 和 TimerTask。

无法理解为什么此配置在部署时立即启动任务(在基于 Web 的 Spring 应用程序中使用此配置)。它应该在 today.getTime 开始,然后必须每天重复。

    Calendar today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 3);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);

MyTask task = new MyTask();
Timer timerJob = new Timer();
timerJob.schedule(task, today.getTime(),
TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS));

最佳答案

我认为,最好使用 CronTrigger 或 24 小时重复间隔的触发器。

CronTrigger 示例:

public class CronTriggerRunner {

public static void main(String args[]) throws SchedulerException, Exception {

SchedulerFactory schedulerFactory = new StdSchedulerFactory();

Scheduler scheduler = schedulerFactory.getScheduler();

JobDetail job = JobBuilder.newJob(ClassToRun.class).withIdentity("jobName", "group").build();
// Starting CronTrigger
String exp = "0 0 9 * * ?"; //trigger format, everyday at 9:00 am

Trigger trigger = TriggerBuilder.newTrigger()
.startNow()
.withSchedule(
CronScheduleBuilder.cronSchedule(exp))
.build();

// Planning job detail
scheduler.scheduleJob(job, trigger);

// starting scheduler
scheduler.start();
}
}

ClassToRun.java

public class ClassToRun implements Job {

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
try{
//doSomething
}
catch(Exception e){
e.printStackTrace(System.out);
}
}
}

每天上午 9:00,public voidexecute() 函数将会做一些事情:D

希望这会有所帮助。请告诉我。

编辑:您需要下载并添加 2 个 jar 文件。 1)quartz-2.2.1.jar 2)slf4j-api-1.6.6.jar

关于Java TimerTask - 在 XX :MM hours everyday 运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37521907/

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