Асинхронная работа Ларавела
Я хочу выполнять асинхронные задания Laravel и работать вечно. Насколько я понимаю, мне нужно настроить задания и поместить их в отдельные очереди.
Я поставил .env
- QUEUE_DRIVER=database
и беги php artisan queue:table
а также php artisan migrate
соответственно.
и я побежал php artisan make:job MyJob
(на данный момент таблица очередей пуста, но я не знаю, сделал ли я что-то не так)
Главное, что я запутался, это как запустить все задания и запустить их навсегда или запустить задание изначально?
Насколько я понимаю, чтобы вызвать работу мне нужно позвонить:
MyFirstJob::dispatch();
но куда мне его призывать, чтобы он работал постоянно и навсегда?
2 ответа
Вам нужно поставить все рабочие места
$schedule->job(new Job1)->everyMinute();
$schedule->job(new Job2)->everyMinute();
$schedule->job(new Job3)->everyMinute();
под функцией schedule() в kernel.php, а затем планировщик будет обрабатывать все задания.
Вы можете получить лучшую идею по этой ссылке
https://spiderwebsolutions.com.au/laravel-5-1-and-job-queues-tutorial/