定时任务工具类

package com.eato2o.cn.task;

import com.eato2o.cn.domain.constant.OperationConstants;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.HashMap;
import java.util.Map;
/**

  • @ClassName TimedTaskUtils
  • @Description <定时任务工具类>
  • @Author YangYingBao
  • @Version 1.0.0
  • @Date 2023/2/8 16:26
    */

public class TimedTaskUtils {

protected static final Logger log = LoggerFactory.getLogger(TimedTaskUtils.class);
private static String cron = "0 0/5 * * * ?";

public static void startTask(String taskId){
    //定时器对象
    Scheduler scheduler;
    try {
        String jobName = taskId + OperationConstants.TASK_NAME;
        scheduler = StdSchedulerFactory.getDefaultScheduler();
        //如果任务存在就删除
        if (scheduler.checkExists(JobKey.jobKey(jobName, taskId))) {
            scheduler.deleteJob(JobKey.jobKey(jobName, taskId));
        }
        Map<String, Object> map = new HashMap<>();
        // 工作名称
        map.put("jobName",jobName);
        // 任务id (订单id)
        map.put("taskId", taskId);
        //定义一个工作对象 设置工作名称与组名
        JobDetail job = JobBuilder.newJob(CheckPayStatusJob.class)
                .withIdentity(jobName, taskId)
                .usingJobData(new JobDataMap(map)).build();
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity(jobName, taskId)
                .withSchedule(CronScheduleBuilder.cronSchedule(cron)).build();
        //设置工作 与触发器
        scheduler.scheduleJob(job, trigger);
        //开始定时任务
        log.info("开始定时任务 !");
        scheduler.start();
    } catch (SchedulerException s) {
        log.error("构建定时任务定时器对象错误{}", s.getMessage());
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值