Когда я отправляю работу, которая терпит неудачу из-за исключения, такого как 'ErrorException' with message 'Undefined variable: sender'
и я исправляю код и повторно запускаю событие, предыдущий код запускается снова, и я получаю ту же ошибку.
Я понятия не имею, почему Laravel перезапускает мой старый код снова и снова. Я, очевидно, хотел бы быть в состоянии исправить ошибки, которые нарушают мою работу.
Я пробовал оба composer dump-autoload
а также php artisan queue:flush
и те не имеют никакого эффекта. Любая помощь?
Вам нужно бежать php artisan clear-compiled
очистить скомпилированные файлы.
Если вы посмотрите на config/compile.php
вы увидите, что некоторые дополнительные провайдеры (или другие классы) по умолчанию кэшируются Laravel.
Если вы внесли какие-либо изменения, например, в EventServiceProvider
и это было ранее кэшировано, Laravel не увидит эти изменения в случае php artisan optimize
команда была ранее запущена (и глядя на https://github.com/laravel/laravel/blob/master/composer.json вы увидите, что он запущен после запуска composer install
или же composer update
).
Эта функция не имеет ничего общего с самим композитором, но с Laravel, поэтому работает composer dump-autoload
не поможет
Мой файл config / compile.php в Laravel 5.1 пуст, но мне это помогло:
sudo service beanstalkd перезапустить
а также
php artisan queue: перезапустить
Laravel часто не хватает хорошей и точной документации.
В моем случае проблема была в супервизоре.
Это единственный процесс, который работает для меня последовательно:
Примечание. Запуск перезапуска супервизора службы не дал результатов.
Я использую Lumen и столкнулся с той же проблемой. Я старался php artisan queue:restart
, который ничего не сделал. Затем я нашел эту тему и попытался php artisan clear-compiled
согласно победившему ответу, но получил ошибку:
Команда «clear-compiled» не определена.
Затем я увидел, что у Artisan была возможность php artisan cache:clear
, который сделал свое дело! Когда я запускаю эту команду, а затем php artisan queue:work
, мой новый код работы используется.