ebike-share/ebike-payment/src/main/java/com/cdzy/payment/task/ScheduledTaskManager.java

73 lines
2.4 KiB
Java
Raw Normal View History

package com.cdzy.payment.task;
import com.cdzy.payment.config.WxPayConfig;
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 {
// @Scheduled任务线程默认串行执行需要考虑并发问题
@Resource
private WxPayConfig wxPayConfig;
@Resource
private ThreadPoolTaskScheduler threadPoolTaskScheduler;
@Resource
private WsPayTask wxPayTask;
@PostConstruct
public void init() {
String CRON_EXPRESSION = wxPayConfig.getCronExpression();
// 启动定时任务
// 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));
}
}