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

Другие вопросы по тегам