[英]Create a scheduled or Cron Job that runs at a specific time of day
我需要在 Java 中创建计划作业或 Cron 作业,以便每天早上 6 点运行。 有没有简单的方法来做到这一点。 我曾尝试将 Timer class 与 scheduleAtFixedRate 方法一起使用,但它只需要一个延迟。
有一种方法可以先用一天,再用周期
您将如何创建一个特定的日期和时间来启动调度程序?
我需要运行作业的 Class 已经使用 TimerTask 进行了扩展。
当我听到诸如“在那个精确的时间用 Java 执行某事”之类的话时,我会想到 Timer 或 Quartz Scheduling。 它们各有利弊,但您可以安全地使用它们。
您在Quart Official Guide中有一个计划任务的示例:
package org.acme.quartz;
import javax.enterprise.context.ApplicationScoped;
import javax.transaction.Transactional;
import io.quarkus.scheduler.Scheduled;
@ApplicationScoped
public class TaskBean {
@Transactional
@Scheduled(every = "10s", identity = "task-job")
void schedule() {
Task task = new Task();
task.persist();
}
}
另一种方式是这种方式,对于重复周期部分:
Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(60).repeatForever()).build();
另一种方式是使用 CronExpression 的能力:
Trigger trigger = TriggerBuilder.newTrigger().startNow()
.withSchedule(CronScheduleBuilder.cronSchedule(expression))
.build();
其中表达式是CRON 表达式。
如果你不了解 Quartz,你可以看看他们的Cookbook 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.