Laravel - это Artisan:call() синхронно?
Я следил за документацией redis pub/sub, предоставленной laravel, и создал команду для подписки. Тем не менее, когда я пишу логику подписки в моем контроллере (это длительная команда), используя Aritsan::call()
код не выполняется дальше, так как команда продолжает ждать чтения строки опубликованного сообщения.
Как мне избежать этого ожидания? Есть ли способ, которым я могу достичь этого асинхронно?
Я пытался поставить эту работу в очередь, но даже Artisan::queue()
занимает столько же времени Любые советы?
0 ответов
С помощью Artisan::call()
будет выполнять команды в синхронном режиме, а Artisan::queue()
будет выполнять команды в режиме "очереди".
Вы должны увидеть драйвер режима "очереди" в файле.env на QUEUE_DRIVER
настройка. По умолчанию это значение будетsync
, поэтому ваш вызов очереди будет выполняться синхронно.
Пожалуйста, обратитесь сюда для получения дополнительной информации о реализации очереди https://laravel.com/docs/5.8/queues