|
@@ -2,6 +2,8 @@ package com.kym.miniapp.jobs;
|
|
|
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.google.common.util.concurrent.RateLimiter;
|
|
import com.google.common.util.concurrent.RateLimiter;
|
|
|
|
|
+import com.kym.common.constant.ResponseEnum;
|
|
|
|
|
+import com.kym.common.exception.BusinessException;
|
|
|
import com.kym.common.utils.CommUtil;
|
|
import com.kym.common.utils.CommUtil;
|
|
|
import com.kym.entity.miniapp.ChargeOrder;
|
|
import com.kym.entity.miniapp.ChargeOrder;
|
|
|
import com.kym.entity.miniapp.delay.DelayChargeOrder;
|
|
import com.kym.entity.miniapp.delay.DelayChargeOrder;
|
|
@@ -81,7 +83,7 @@ public class StartChargeDelayJob implements DelayService<DelayChargeOrder> {
|
|
|
executor.execute(() -> {
|
|
executor.execute(() -> {
|
|
|
ThreadLocal<String> threadLocal = ThreadLocal.withInitial(() -> null); // 初始化为空值,避免使用new ThreadLocal()
|
|
ThreadLocal<String> threadLocal = ThreadLocal.withInitial(() -> null); // 初始化为空值,避免使用new ThreadLocal()
|
|
|
log.info("预约启动充电处理线程:{}", Thread.currentThread().getName());
|
|
log.info("预约启动充电处理线程:{}", Thread.currentThread().getName());
|
|
|
- DelayedItem<DelayChargeOrder> delayedItem;
|
|
|
|
|
|
|
+ DelayedItem<DelayChargeOrder> delayedItem = null;
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
delayedItem = START_DELAY_QUEUE.take();
|
|
delayedItem = START_DELAY_QUEUE.take();
|
|
@@ -98,6 +100,11 @@ public class StartChargeDelayJob implements DelayService<DelayChargeOrder> {
|
|
|
log.error("预约充电队列take异常", e);
|
|
log.error("预约充电队列take异常", e);
|
|
|
} else {
|
|
} else {
|
|
|
log.info("预约启动充电失败,订单号:{}", threadLocal.get());
|
|
log.info("预约启动充电失败,订单号:{}", threadLocal.get());
|
|
|
|
|
+ if (e instanceof BusinessException && (ResponseEnum.EN_PLUS_TOKEN_EXCEPTION.getCode().equals(((BusinessException) e).getCode()))) {
|
|
|
|
|
+ log.info("EN+ token异常,预约订单重试");
|
|
|
|
|
+ // token异常就重新放入队列重试
|
|
|
|
|
+ addToDelayQueue(delayedItem);
|
|
|
|
|
+ }
|
|
|
log.error(e.getMessage());
|
|
log.error(e.getMessage());
|
|
|
// 启动失败将订单状态修改为充电状态已结束,订单状态已确认,结束原因:预约启动失败
|
|
// 启动失败将订单状态修改为充电状态已结束,订单状态已确认,结束原因:预约启动失败
|
|
|
chargeOrderService.lambdaUpdate()
|
|
chargeOrderService.lambdaUpdate()
|