Вход Регистрация Google+

Ёбаная очередь в laravel

   Вчера долго парился с тем как всё таки добавить очередь, в laravel 5.2. Но оказалось это было проще, в общем, прежде чем начнём, разберём для чего эта хрень нужна. К примеру есть трудоёмкие операции, которые выполнять паралельно с рендором страницы просто долго и очень херово. Первым делом мы должны создать табличку для очереди:

php artisa queue:table

php artisan migrate

Далее создаём фаил работы (job)

php artisan make:job MyJob

в метод handler воркера пишем нашу логику, после в контролерре вы можете вызвать метод dispatch() и положить задачу в очередь

$this->dispatch(new MyJob());

Чтобы вызвать метод не у контроллера, необходимо просто добавить трейт

use Illuminate\Foundation\Bus\Dispatchable;

в ваш класс и вызвать dispatch метод.

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


* * * * * /usr/bin/php /var/www/mysite/artisan queue:work > /var/log/queue.log

Вот и всё очередь готова!

Ваши комментарии

| Alexey 2017-07-06 18:47:29 |

Кульна

Наверх ^