Laravel无法修改排队的作业代码

时间:2015-09-29 03:39:51

标签: php laravel composer-php jobs supervisord

当我发送因'ErrorException' with message 'Undefined variable: sender'之类的异常而失败的作业并修复代码并重新启动事件时,之前的代码再次运行,我得到同样的错误。

我不知道为什么Laravel一遍又一遍地重新运行我的旧代码。我显然希望能够解决破坏我的工作执行的错误。

我已经尝试了composer dump-autoloadphp artisan queue:flush,但这些都没有效果。有什么帮助吗?

4 个答案:

答案 0 :(得分:8)

我的Laravel 5.1 config / compile.php文件是空的,但这对我有帮助:

sudo service beanstalkd restart

php artisan queue:restart

Laravel经常缺乏良好而准确的文档。

答案 1 :(得分:4)

您需要运行 try { yield r.dbCreate(config.database.db).run(); yield r.tableCreate('user').run(); } catch (err) { if (err.message.indexOf("already exists") == -1) console.log(err.message); } app.listen(port); 来清除已编译的文件。

如果查看php artisan clear-compiled,Laravel默认会缓存一些额外的提供程序(或其他类)。

如果您在config/compile.php中进行了任何更改并且之前已缓存,则Laravel在EventServiceProvider命令先前启动的情况下不会看到这些更改(并查看{{3}你会看到它在运行php artisan optimizecomposer install)后启动。

此功能与作曲家本身没有任何共同之处,但与Laravel一样,为什么运行composer update无法提供帮助。

答案 2 :(得分:3)

就我而言,主管就是问题。

这是唯一一个对我有效的过程:

  1. 运行'服务主管停止'
  2. 运行'服务主管开始'
  3. 退出浏览器,重新启动它,清除缓存并重试
  4. 注意:运行服务主管重新启动'没有效果。

答案 3 :(得分:0)

我正在使用Lumen并遇到相同的问题。我尝试了php artisan queue:restart,但没有执行任何操作。然后,我找到了这个线程,并根据获胜的答案尝试了php artisan clear-compiled,但收到了错误消息:

命令“ clear-compiled”未定义。

然后,我看到Artisan拥有选项php artisan cache:clear,可以解决问题!当我在后跟php artisan queue:work的情况下触发该命令时,将使用新的工作代码。