Jenkins未按预定时间运行,系统休眠后构建任务执行异常
问题根因分析
- 系统休眠阻断定时调度
系统进入休眠模式后会暂停所有用户态进程、关闭定时任务唤醒权限,你设置的19:00/21:00/23:00构建任务无法在休眠状态下触发,只有系统预设的凌晨0点自动唤醒机制生效后,所有积压的任务才会统一启动,和你日志中显示的Aug 26, 2021 12:03:21 AM启动时间完全吻合。 - Jenkins运行权限不足
你当前的Jenkins是用户级启动进程,而非注册的Windows系统服务。用户登出(休眠状态等同于登出)后,Jenkins进程没有权限调用桌面交互资源,因此Selenium的ChromeDriver只能执行少量无需UI渲染的用例,剩余用例会阻塞到你重新登录系统、进程获得交互权限后才会继续运行。 - 时区配置不匹配
你设置任务用的是本地时区,但Jenkins调度器默认采用印度标准时间,和你本地时区存在时差,导致Jenkins页面显示的预计执行时间和你预设的触发时间不一致,进一步加重了调度异常问题。
修复方案
- 修改系统电源设置:关闭自动休眠,或者在电源高级设置中开启「允许定时唤醒计算机」选项,保证到点调度任务可以正常唤醒系统执行。
- 调整Jenkins运行模式:将Jenkins重新注册为Windows系统服务,开启服务的「允许服务与桌面交互」权限,确保用户未登录时Jenkins也能调用UI资源启动Chrome执行完整的测试用例。
- 统一调度时区:在Jenkins系统配置中将调度时区修改为你所在地区的对应时区,避免时间差导致的调度错位。
内容的提问来源于stack exchange,提问作者AJAY SINGH RATHOUR
相关产品推荐
相关产品推荐

