perf(task): 调整定时任务执行频率以优化性能

- 将经销商佣金解冻任务执行频率从每分钟调整为每30秒一次
- 将经销商订单结算任务执行频率从每20秒调整为每10秒一次
- 将GLT套票发放任务执行频率从每分钟调整为每15秒一次
- 将GLT票券订单自动确认任务执行频率从每分钟调整为每33秒一次
- 将GLT用户票券自动释放任务执行频率从每分钟调整为每10分钟一次
- 在票券订单完成时同步更新商城订单状态为已完成
This commit is contained in:
2026-02-10 13:52:13 +08:00
parent 0fc914f47a
commit 1177730464
6 changed files with 11 additions and 9 deletions

View File

@@ -407,6 +407,8 @@ public class GltTicketOrderServiceImpl extends ServiceImpl<GltTicketOrderMapper,
if (ok) {
// 配送员拍照上传送达后可触发提成结算(幂等,重复调用不会重复入账)
settleRiderCommissionIfEligible(id, tenantId, true);
// 配送员确认送达后,同步商城订单为“已完成”(orderStatus=1)
updateShopOrderOrderStatusAfterTicketFinished(id, tenantId, now);
return;
}
@@ -426,6 +428,7 @@ public class GltTicketOrderServiceImpl extends ServiceImpl<GltTicketOrderMapper,
|| order.getDeliveryStatus() == DELIVERY_STATUS_FINISHED)) {
// 幂等:重复送达视为成功
settleRiderCommissionIfEligible(id, tenantId, true);
updateShopOrderOrderStatusAfterTicketFinished(id, tenantId, LocalDateTime.now());
return;
}
throw new BusinessException("订单状态不允许确认送达");

View File

@@ -85,7 +85,7 @@ public class DealerCommissionUnfreeze10584Task {
private final AtomicBoolean running = new AtomicBoolean(false);
@Scheduled(cron = "${dealer.commission.unfreeze10584.cron:0 */1 * * * ?}")
@Scheduled(cron = "${dealer.commission.unfreeze10584.cron:0/30 * * * * ?}")
@IgnoreTenant("定时任务无登录态,需忽略租户隔离;内部使用 tenantId=10584 精确过滤")
public void run() {
if (!running.compareAndSet(false, true)) {

View File

@@ -38,7 +38,7 @@ import java.util.*;
/**
* 租户10584分销订单结算任务
* <p>
* 每20秒执行一次查询“已付款且未结算”的订单按指定规则计算佣金并先计入分销商冻结金额freezeMoney并将订单置为已结算。
* 每10秒执行一次查询“已付款且未结算”的订单按指定规则计算佣金并先计入分销商冻结金额freezeMoney并将订单置为已结算。
*/
@Slf4j
@Component
@@ -88,9 +88,9 @@ public class DealerOrderSettlement10584Task {
private UserMapper userMapper;
/**
* 每30秒执行一次。
* 每10秒执行一次。
*/
@Scheduled(cron = "0/20 * * * * ?")
@Scheduled(cron = "0/10 * * * * ?")
@IgnoreTenant("该定时任务仅处理租户10584但需要显式按tenantId过滤避免定时任务线程无租户上下文导致查询异常")
public void settleTenant10584Orders() {
try {

View File

@@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
/**
* GLT 套票发放任务:
* - 每分钟扫描一次今日订单tenantId=10584, formId in 套票模板 goodsId, payStatus=1, orderStatus=0
* - 每30秒扫描一次今日订单tenantId=10584, formId in 套票模板 goodsId, payStatus=1, orderStatus=0
* - 为订单生成用户套票账户 + 释放计划(幂等)
* - 若模板配置了 startSendQty则发放时自动核销对应数量用于“第一次送水”场景
*/
@@ -33,7 +33,7 @@ public class GltTicketIssue10584Task {
private final AtomicBoolean running = new AtomicBoolean(false);
@Scheduled(cron = "${glt.ticket.issue10584.cron:0 */1 * * * ?}")
@Scheduled(cron = "${glt.ticket.issue10584.cron:0/15 * * * * ?}")
@IgnoreTenant("定时任务无登录态,需忽略租户隔离;内部使用 tenantId=10584 精确过滤")
public void run() {
if (!running.compareAndSet(false, true)) {

View File

@@ -34,7 +34,7 @@ public class GltTicketOrderAutoConfirm10584Task {
private final AtomicBoolean running = new AtomicBoolean(false);
@Scheduled(cron = "${glt.ticket-order.auto-confirm10584.cron:0 */1 * * * ?}")
@Scheduled(cron = "${glt.ticket-order.auto-confirm10584.cron:0/33 * * * * ?}")
@IgnoreTenant("定时任务无登录态,需忽略租户隔离;内部使用 tenantId=10584 精确过滤")
public void run() {
if (!running.compareAndSet(false, true)) {
@@ -53,4 +53,3 @@ public class GltTicketOrderAutoConfirm10584Task {
}
}
}

View File

@@ -30,7 +30,7 @@ public class GltUserTicketAutoReleaseTask {
private final AtomicBoolean running = new AtomicBoolean(false);
@Scheduled(cron = "${glt.ticket.auto-release.cron:0 */1 * * * ?}")
@Scheduled(cron = "${glt.ticket.auto-release.cron:0 */10 * * * ?}")
@IgnoreTenant("定时任务无登录态,需忽略租户隔离;释放记录自带 tenantId更新时会校验 tenantId")
public void run() {
if (!running.compareAndSet(false, true)) {