Laravel Ошибка задания: обработчик не зарегистрирован для команды [App / Jobs / IndexUser.php] - PullRequest
0 голосов
/ 26 января 2020

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

исключение 'InvalidArgumentException' с сообщением 'Не зарегистрирован обработчик для команды [App \ Jobs \ IndexUser]'

Job:

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class IndexUser
{
    use InteractsWithQueue, Queueable, SerializesModels;

Отправка:

dispatch((new IndexUser($this->user->id, $user_status))->onQueue('index_user'));

Я думаю, что это может быть из-за установленного пакета. Но я не могу удалить его, поскольку использую его широко.

laravelcollective / html

Версия PHP - 5.6, а версия laravel - 5.1. Обновлять их нельзя, поскольку это не в моих руках.

То, что я пробовал:

  1. Когда я использую SelfHandling в работе, он работает нормально, но не использует база данных как драйвер или супервизор, что мне и нужно.

    Класс IndexUser реализует SelfHandling

  2. Установка этого пакета https://github.com/AltThree/Bus/tree/v1.1.0. Но composer возвращает ошибку, поскольку для пакета требуется более высокая laravel версия.

Есть ли способ исправить это?

1 Ответ

0 голосов
/ 26 января 2020

Мне не хватало интерфейса ShouldQueue в работе. Это исправлено

use Illuminate\Contracts\Queue\ShouldQueue;

class IndexUser extends Job implements SelfHandling, ShouldQueue
{
...