70 lines
2.2 KiB
Java
70 lines
2.2 KiB
Java
|
|
package com.cdzy.payment.task;
|
|||
|
|
|
|||
|
|
import jakarta.annotation.PostConstruct;
|
|||
|
|
import jakarta.annotation.Resource;
|
|||
|
|
import lombok.extern.slf4j.Slf4j;
|
|||
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
|||
|
|
import org.springframework.scheduling.support.CronTrigger;
|
|||
|
|
import org.springframework.stereotype.Component;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 定时作业调度器。
|
|||
|
|
*
|
|||
|
|
* @author dingchao
|
|||
|
|
* @date 2025/5/2
|
|||
|
|
* @modified by:
|
|||
|
|
*/
|
|||
|
|
@Slf4j
|
|||
|
|
@Component
|
|||
|
|
public class ScheduledTaskManager {
|
|||
|
|
// 每隔30秒执行1次
|
|||
|
|
private final static String CRON_EXPRESSION = "0/30 * * * *?";
|
|||
|
|
|
|||
|
|
// @Scheduled任务线程默认串行执行,需要考虑并发问题
|
|||
|
|
@Resource
|
|||
|
|
private ThreadPoolTaskScheduler threadPoolTaskScheduler;
|
|||
|
|
@Resource
|
|||
|
|
private WsPayTask wxPayTask;
|
|||
|
|
|
|||
|
|
@PostConstruct
|
|||
|
|
public void init() {
|
|||
|
|
// 启动定时任务
|
|||
|
|
// 1. 每隔30秒执行1次,查询创建未超过5分钟,并且未支付的订单
|
|||
|
|
threadPoolTaskScheduler.schedule(new Runnable() {
|
|||
|
|
@Override
|
|||
|
|
public void run() {
|
|||
|
|
try {
|
|||
|
|
wxPayTask.checkOrderStatus();
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
log.error("checkOrderStatus 执行异常", e);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, new CronTrigger(CRON_EXPRESSION));
|
|||
|
|
|
|||
|
|
// 2. 每隔30秒执行1次,查询创建超过5分钟,并且未支付的订单
|
|||
|
|
threadPoolTaskScheduler.schedule(new Runnable() {
|
|||
|
|
@Override
|
|||
|
|
public void run() {
|
|||
|
|
try {
|
|||
|
|
wxPayTask.closeOrder();
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
log.error("closeOrder 执行异常", e);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, new CronTrigger(CRON_EXPRESSION));
|
|||
|
|
|
|||
|
|
// 3. 每隔30秒执行1次,查询创建未超过5分钟,并且未成功的退款单
|
|||
|
|
threadPoolTaskScheduler.schedule(new Runnable() {
|
|||
|
|
@Override
|
|||
|
|
public void run() {
|
|||
|
|
try {
|
|||
|
|
wxPayTask.checkRefundStatus();
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
log.error("checkRefundStatus 执行异常", e);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, new CronTrigger(CRON_EXPRESSION));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|