Laravel не может изменить код задания в очереди

Когда я отправляю работу, которая терпит неудачу из-за исключения, такого как 'ErrorException' with message 'Undefined variable: sender' и я исправляю код и повторно запускаю событие, предыдущий код запускается снова, и я получаю ту же ошибку.

Я понятия не имею, почему Laravel перезапускает мой старый код снова и снова. Я, очевидно, хотел бы быть в состоянии исправить ошибки, которые нарушают мою работу.

Я пробовал оба composer dump-autoload а также php artisan queue:flush и те не имеют никакого эффекта. Любая помощь?

4

Решение

Вам нужно бежать 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 не поможет

4

Другие решения

Мой файл config / compile.php в Laravel 5.1 пуст, но мне это помогло:

sudo service beanstalkd перезапустить

а также

php artisan queue: перезапустить

Laravel часто не хватает хорошей и точной документации.

7

В моем случае проблема была в супервизоре.

Это единственный процесс, который работает для меня последовательно:

  1. запустить «остановка службы супервизора»
  2. запустить ‘запуск службы супервизора’
  3. выйдите из браузера, перезагрузите его, очистите кеш и попробуйте снова

Примечание. Запуск перезапуска супервизора службы не дал результатов.

3

Я использую Lumen и столкнулся с той же проблемой. Я старался php artisan queue:restart, который ничего не сделал. Затем я нашел эту тему и попытался php artisan clear-compiledсогласно победившему ответу, но получил ошибку:

Команда «clear-compiled» не определена.

Затем я увидел, что у Artisan была возможность php artisan cache:clear, который сделал свое дело! Когда я запускаю эту команду, а затем php artisan queue:work, мой новый код работы используется.

0
По вопросам рекламы [email protected]