EOS Low-Code Platform 8 EOS Low-Code Platform 8
产品简介
学习指南
更新说明
安装与集成
上线指南
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
最佳实践
运维指南
  • 定时任务问题排查解决指南
  • 一、任务注册与启动类问题
  • 二、任务执行与结果类问题
  • 三、日志与监控类问题
  • 四、配置与环境类问题
  • 附录:常用配置参考

# 定时任务问题排查解决指南

本指南汇总了EOS平台中XXL-JOB定时任务的常见问题及解决方案,帮助您快速定位和解决定时任务执行失败、调度异常等问题。请根据您遇到的现象,在下方查找对应的处理步骤。


# 一、任务注册与启动类问题

1. 现象:AFCENTER启动成功,但执行器无法注册到xxljob,报错Statuscode(401) invalid.for url : http://xxx/api/afc/job/api/registry access url [/api/afc/job/api/job-registry-bizx] token [null] must be login.

解决方案:

  • 执行器对于调度器来说是一个独立的执行器,AFC自己调自己也要鉴权。 在afcenter\config\AFCENTER\config\user-config.xml Login-Filter登录白名单里增加/api/afc/job/api/*。 xxl白名单

2. 现象:应用重启后,定时任务服务不能自动启动,日志提示找不到对应的逻辑流

解决方案:

  • 检查任务调度的配置是否完整。确认在application-job.properties中已正确配置执行器相关参数。
  # 调度中心配置
  afc.job.admin.enabled=true
  #执行器token,非空时启用
  xxl.job.accessToken=default_token
  # executor配置
  afc.job.executor.enabled=true
  afc.job.executor.accessToken=default_token
  #调度中心部署地址,多个配置逗号分隔 "http://address01,http://address02"
  afc.job.executor.address=http://ip:port/
  #地址信息用于 "执行器注册" 和 "调度中心请求并触发任务"
  afc.job.executor.ip=127.0.0.1
  #执行器端口号:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口
  afc.job.executor.port=9999
  #执行器日志文件存储路径,需要对该路径拥有读写权限;为空则使用默认路径
  afc.job.executor.logPath=
  #执行器日志保存天数
  afc.job.executor.logRetentionDays=30
  • 检查执行器端口是否被占用。执行器端口默认都是9999,一台机器上如果部署了多个执行器应用,需要修改端口避免冲突。

3. 现象:微服务应用中配置定时任务,启动时报错 The access token is wrong

解决方案:

  • XXL-JOB调度器调用时不带token,需要在逻辑流中手动传token,或将call-method接口加入登录白名单。
  • 注意:加入白名单存在安全隐患,生产环境建议使用token方式。
  • 如需使用token,可通过系统变量配置固定token,在逻辑流中获取并传递。

# 二、任务执行与结果类问题

4. 现象:job调用逻辑流时,提示调用成功,但实际执行失败

解决方案:

  • 检查逻辑流中是否存在查询图元,查询操作可能导致执行超时或异常。
  • 查看eos-trace.log日志,获取详细的错误堆栈信息。

5. 现象:任务调度功能中,多个任务执行同一个逻辑流,但参数不同,执行结果却都一样

解决方案:

  • 目前不支持同一逻辑流多任务不同参数。
  • 快速绕过方案:
    • 创建多个逻辑流,分别配置不同参数。
    • 或创建外层逻辑流进行包装,外层逻辑流名称不同,内层调用同一个子逻辑流。

# 三、日志与监控类问题

6. 现象:xxl-job同步的后台任务执行时间较长(如5分钟),数据库任务正常完成,但调度日志返回read timed out

解决方案:

  • 如果确定任务正常完成但报了超时错误,可以尝试调节超时时间。
  • 在application-job.properties中配置超时时间:
    xxl.job.executor.timeout=300  # 单位为秒
    
  • 注意:不建议将超时时间设置过长,如果确认任务是正常执行完成,可忽略该错误。

# 四、配置与环境类问题

7. 现象:xxljob调逻辑流时,任务参数怎么传?

解决方案:

  • 参数需要符合json格式,示例参考:

    {"usernames":["wangfang","liming"]}
    

    xxl白名单

  • 在逻辑流中通过参数变量接收传入的json数据。

8. 现象:新建调度执行器提示AppName长度限制为4~64

解决方案:

  • 这是xxl-job的限制,修改应用名称长度大于4个字符即可。
  • 新建低开项目时,应用名称需满足长度要求。

# 附录:常用配置参考

application-job.properties 核心配置:

# 调度中心部署根地址
xxl.job.admin.addresses=http://127.0.0.1:28083/xxl-job-admin

# 执行器通讯TOKEN(需与调度中心一致)
xxl.job.accessToken=自定义令牌

# 执行器AppName(需与调度中心执行器管理的AppName保持一致)
xxl.job.executor.appname=应用名称

# 执行器注册地址
xxl.job.executor.address=
# 执行器IP
xxl.job.executor.ip=
# 执行器端口
xxl.job.executor.port=9999

# 执行器运行日志文件存储磁盘路径
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
# 执行器日志文件保存天数
xxl.job.executor.logretentiondays=30

← 升级迁移问题排查解决指南 附件上传与下载问题排查指南 →