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

75 lines
2.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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_PAY = wxPayConfig.getPaySchedule();
String CRON_EXPRESSION_REFUND = wxPayConfig.getRefundSchedule();
// 启动定时任务
// 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_PAY));
//========支付系统自动关闭,不主动关闭,每次发起请求的时候检测是否关闭========
//// 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_REFUND));
}
}