PHP 是单线程的,作业和队列在 laravel 中如何工作?

PHP is single-threaded , How job and queue works in laravel?

昨天我去面试了,他问了我一个问题。 PHP 是一种单线程语言,那么作业和队列在幕后 laravel 是如何工作的?

单线程并不意味着你不能启动程序的多个实例,它意味着程序不能同时执行自身的多个部分。

考虑到这一点,您将很容易理解,当您在 运行 队列 php artisan queue:work 时,一个新工作程序(一个 PHP 进程)启动并执行每个新工作被推入队列。

此工作器与任何其他程序一起运行,无论是否为单线程。

在 Laravel 中,队列 运行 与使用 php artisan queue:work 的 PHP CLI 独立,与线程无关 ...