Laravel 11升级后Horizon任务停滞问题求助
Laravel 11升级后Horizon任务停滞问题求助
各位好,想请教一个Laravel升级后遇到的Horizon任务问题:
我们的项目里Horizon配置了独立的Redis连接(和缓存用的不是同一个),最近从Laravel 10升级到11之后,出现了一个奇怪的情况——所有在Laravel 10版本下调度的旧任务都卡在pending状态完全不执行,但升级后新创建的任务运行一切正常。
我们已经做了一些排查:
- 确认了新任务能正确写入指定的Redis实例,键前缀也和旧任务一致
- 对比新旧任务的Redis存储结构后,唯一发现的差异是
delay.dumpDateProperties.timezone字段的存储格式:- 旧任务的时区是序列化的Carbon对象:
"timezone":"O:21:\"Carbon\\CarbonTimeZone\":2:{s:13:\"timezone_type\";i:3;s:8:\"timezone\";s:3:\"UTC\";}" - 新任务则是直接存储的字符串:
"timezone": "UTC"
- 旧任务的时区是序列化的Carbon对象:
- 我们试着用Redis的
HSET命令手动修改了旧任务的这个时区字段,改成和新任务一样的字符串格式,但修改后任务还是没有触发执行 - 另外比较头疼的是,Horizon似乎没有提供手动运行pending任务的功能,没法强制触发旧任务来验证修复效果
有没有朋友遇到过类似的升级兼容问题?或者有什么其他排查方向、修复思路可以分享的?非常感谢大家的帮助!
备注:内容来源于stack exchange,提问作者InS0mN1aC
相关产品推荐
相关产品推荐

