可以使用Quartz中的SimpleTrigger来实现这个需求。具体步骤如下:

  1. 创建Job类,实现org.quartz.Job接口,重写execute方法,编写具体的任务逻辑。

  2. 创建JobDetail对象,指定Job类和Job名称。

  3. 创建SimpleTrigger对象,设置任务的开始时间和只执行一次。

  4. 创建Scheduler对象,将JobDetail和Trigger对象添加到Scheduler中。

  5. 调用Scheduler的start方法启动调度器。

下面是一个示例代码:

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import java.util.Date;

public class QuartzTest {
    public static void main(String[] args) throws SchedulerException {
        // 创建JobDetail对象
        JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob", "group1")
                .build();

        // 创建SimpleTrigger对象
        SimpleTrigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "group1")
                .startAt(new Date(System.currentTimeMillis() + 10000)) // 10秒后开始任务
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().withMisfireHandlingInstructionFireNow())
                .build();

        // 创建Scheduler对象
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.scheduleJob(jobDetail, trigger);

        // 启动调度器
        scheduler.start();
    }
}

class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("任务开始执行...");
        // 编写具体的任务逻辑
    }
}
quartz配置运行后的10秒后开始任务并且只执行一次

原文地址: https://www.cveoy.top/t/topic/bHtF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录