gpt4 book ai didi

java - Quartz CronTrigger 多次触发自身

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

我正在尝试使用quartz api实现一个CronTrigger,它可以工作,但不太好,当到达cron表达式时,作业无限执行,我不知道为什么。

我只想在 cron 表达式到达时执行它 1 次。

有人可以帮我知道为什么它执行了很多次吗?

这是我的代码

    package cron;

import java.text.ParseException;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;

import cron.HelloJob;

public class Quartz {

public static void main(String[] args) throws ParseException, SchedulerException {
JobDetail job = new JobDetail();
job.setName("health check");
job.setJobClass(HelloJob.class);

System.out.println("After job");

CronTrigger triggr = new CronTrigger();
triggr.setName("Check");
triggr.setCronExpression("* 50 07 * * ? *");

System.out.println("Cron expression" + triggr.getCronExpression());

Scheduler scheduler2 = new StdSchedulerFactory().getScheduler();
scheduler2.start();
scheduler2.scheduleJob(job, triggr);
}

}

这就是工作

package cron;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;


public class HelloJob implements Job {
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("Hello job");


}


}

这是我的输出 Many prints

我只想用我的 cron 打印 1 次

最佳答案

您将其配置为每秒触发(第一个 *):

triggr.setCronExpression("* 50 07 * * ? *");

要解决这个问题,只需输入一个值,例如 0:

triggr.setCronExpression("0 15 15 * * * *");

这应该在每天 15:15:00 (hh:mm:ss) 触发。

请参阅此处的用法:

http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html

关于java - Quartz CronTrigger 多次触发自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48707682/

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