一. 问题描述
总共有37个流程, 每个流程都是整点执行, 但是只有部分流程可以正常执行, 一部分并没有执行, 后台也没报错, 手动出发可以执行.
二. 问题分析
- 单个可以执行,多个无法同时执行,是不是线程问题呐?(各种查询资料,没结果)
- 会不会是执行器的问题. 通过日志及debug发现执行器根本就没有被调用.说明还是服务端的问题.
- 既然有的流程可以执行,有的无法执行那就只能从数据库中对比数据结构进行调查.
果然有所发现:
流程表中有些流程的下一次执行时间为空
, 如果把空的数据手动录入, 再次观察自动执行一切正常.
三. 总结
出现这个问题可能是我迁移数据的时候丢失了某些数据.
但是Powerjob这里设计有问题, 既然已经配置了cron表达式, 而且状态已经开启, 那么下次触发时间为空的话,日志中应该给出明确的错误提示.否则,很难调查问题.