Closed owlbrave closed 1 year ago
@owlbrave 请问是哪个容器镜像? 或者试试这个镜像 quicklyon/zentao-docker
@ysicing 这是我使用的命令:docker pull easysoft/zentao:18.3
@owlbrave 可以试试我们的新版本镜像 easysoft/quickon-zentao:18.3-20230423
, 使用参考 quicklyon/zentao-docker/docker-compose.yml
重建镜像确实可以解决定时任务问题,但是我提个这个issue是个优化问题!
禅道中的时区是在安装时设置好的,如果运维有其他的操作的话,导致超前,建议也重置下crontab表中的数据。
后期会考虑改进这里的逻辑。
已记录,内部反馈 id 6316
问题描述: 我的项目搭建在docker容器下,某一天(可能是运维操作了什么),导致docker中的时间超前了。这时候会导致定时任务中,原来设置早上发邮箱的任务,突然不准时生效。然后我们找到了是由于docker时间和服务器时间不一样导致的。我们就修改docker时间,把docker同步到服务器时间,这时候发现定时任务完全不跑了。这导致我们的团队好几天没有收到邮箱信息了。
根据上述的问题,我们从代码中找到了答案
问题分析:由于docker时间超前,cron执行的任务会记录lastTime,我们修改docker时间后,查询到的lastTime还是超前的时间,造成任务停摆。
建议优化:可以判断最后执行时间(lastTime)和 当前时间做对比,如果当前时间小于LastTime,我们可以把数据库中,大于当前时间的lastTime清理掉,或者替换成当前时间。