Настройка очереди в Laravel 5

Я пытаюсь запустить код после возврата HTTP-ответа. Я знаю, что Laravel 5 поддерживает очереди, но я все еще нахожу их запутанным. Я пытаюсь запустить код после регистрации пользователя, который требует пароля пользователя и имени пользователя. ответ кажется интересным, но непосредственно не применимо к Laravel.

  • как создать задание в очереди?
  • как я могу передать данные в новую работа?

Я знаю, что это звучит лениво и все, но я действительно не понимаю документацию.

3 ответов


настройка очередей требует, как и самый первый шаг, чтобы выбрать какой драйвер вы будете использовать. Потому что это самый быстрый, чтобы получить работает, я объясню, как начать с database драйвер, поскольку он не требует установки каких-либо других служб на сервере (как это имеет место для beanstalkd например). Вот как это настроить:

1. установить QUEUE_DRIVER в своем :

QUEUE_DRIVER=database

2. выполнить эта команда для создания файла миграции для jobs таблица, которая будет использоваться для хранения информации о работе:

php artisan queue:table

3. теперь запустите миграцию, чтобы создать таблицу:

php artisan migrate

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


вы можете нажать обе команды и clojures на очереди. Для краткости я покажу пример того, как подтолкнуть закрытие к очередь:

$username = Request::input('username');
$password = Request::input('password');

// Do your registration stuff

// Push a job onto the queue
\Queue::push(function($job) use ($username, $password)
{
    // Do the stuff you need here with $username and $password

    // Delete the job from the queue
    $job->delete();
});

последним шагом к выполнению этой работы является запуск прослушивателя очереди. Задания не будут обрабатываться автоматически, если прослушиватель очереди не запущен. Поэтому выполните следующую команду:

php artisan queue:listen

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


обычно мы передаем данные в очереди следующим образом -

на контроллере мы написали -

$this->dispatch(new videoToAudioConvert($video_id))

в разделе Задания вы должны написать вот так -

protected $video_id

public function __contructor($video_id){
  $this->video_id = $video_id
}

public function handle(){
  $this->video_id
}

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


каковы данные требования для хранения в таблице заданий я использую это для отправки электронной почты с очередью, и я запланирую его я сделал первые 3 шага. Установите QUEUE_DRIVER в свой .файл env:

QUEUE_DRIVER=база данных 2. Выполните эту команду, чтобы создать файл миграции для таблицы заданий, которая будет использоваться для хранения сведений о задании:

php artisan очередь: таблица 3. Теперь запустите миграцию, чтобы создать таблицу:

PHP для ремесленника перенести Была создана таблица заданий, которая будет хранить данные, когда задания будут помещены в очередь.