Настройка очереди в 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 для ремесленника перенести Была создана таблица заданий, которая будет хранить данные, когда задания будут помещены в очередь.