【发布时间】:2019-01-21 06:38:48
【问题描述】:
我有一个使用 redis 和 Laravel (5.1) 队列的项目。
在我们的案例中,在部署后,特定作业开始失败,导致 Redis 中积压了数万个作业。在特定作业类中的代码中发现逻辑问题后,部署了一个修复程序,该修复程序还删除了一个类范围的变量。
但是,由于类被序列化并存储在 redis 中,当排队的作业重试排队的作业时,由于 Laravel 工作人员试图访问现在不存在的类范围变量而失败。我通过重新部署变量来解决这个问题。
以后如何避免这种情况?有没有办法刷新序列化的作业代码,或者有更好的方法来捕捉这种错误? Laravel 在 Redis 中使用的序列化对象方法在队列项和我宁愿避免的 Laravel 代码之间创建了依赖关系。
【问题讨论】:
-
我也有兴趣回答这个问题
-
@lufc 原来这是一个严重无证的 Laravel 问题。仅在大约 2 周前更新了最新文档以包含可能对您有所帮助的内容:laravel.com/docs/5.7/queues#ignoring-missing-models