@XxlJob 调用Service方法无法写入数据到数据库
但是使用API Controller 调用的就可以写入数据库中
@XxlJob("shipmentWarningTask")
@GetMapping("/shipmentWarningTask")
public ReturnT<String> shipmentWarningTask() {
log.info("=====================>定时任务 shipmentWarningTask 开始<=====================");
try {
schedulerTaskSo.shipmentWarningTask(initControl());
} catch (Exception e) {
log.error("context", e);
return ReturnT.FAIL;
}
log.info("=====================>定时任务 shipmentWarningTask 结束<=====================");
return ReturnT.SUCCESS;
}
1、事务管理配置不一致:请确保在 XxlJob 中正确配置了事务管理。如果服务方法需要使用事务来进行数据库操作,在 XxlJob 中需要配置适当的事务管理器和事务属性,以确保操作在一个事务中被执行。
2、权限问题:检查服务方法所在的代码路径和访问数据库的权限。确保 XxlJob 进程具有足够的权限访问数据库,并且所需的库表和操作权限正确配置。
3、调用上下文问题:检查服务方法中是否需要访问调用上下文中的特定信息,例如用户身份验证信息或请求相关的数据。
在 XxlJob 中,这些上下文信息可能与 API 控制器不同
4、XxlJob支持console控制台页面,查看你的定时器执行日志,看看是否有报错信息导致的事务回滚之类导致的插入数据失败