@Beor

Почему Laravel выполняет задание сразу, без постановки в очередь?

Всех приветствую. Не могу разобраться с постановкой задачи в очередь.

Настройки конфигурационного файла "queue.php"
'yandex' => env('QUEUE_CONNECTION', 'database'),
Отправка в очередь в методе модели
GetSearchData::dispatch($searchService)->onQueue('yandex');

Код самого класса:
namespace App\Jobs;

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

class GetSearchData implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $engine;

    public function __construct($engine)
    {
        $this->engine = $engine;
    }

    public function handle()
    {
        $this->engine->deleteTodayPositions();
        $this->engine->getSearchIndex();
    }
}

В базе данных все миграции сделаны, таблица jobs есть. При выполнении метода из модели код выполняется сразу не попадая в очередь. В таблице jobs записи не появляется.

Помогите понять, что делаю не так.
  • Вопрос задан
  • 380 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Документацию по настройке Laravel читал? Драйвер очередей правильный указал в .env? Вангую, что нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dalph
я тоже не мог разобраться почему настройки .env не подхватываются.
оказывается дело в сбросе кеша настроек
возможно и у автора была эта проблема
таким образом нужно проверить шаги:
1) добавить в .env
QUEUE_CONNECTION=database
2) сделать сброс кеша настроек
php artisan config:cache

вот видео с пошаговой инструкцией
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы