在本地开发时使用 queue:listen 而不是 queue:work
发表于 作者 Eric L. Barnes
Laravel 拥有强大的队列系统,当您使用队列时,需要运行 worker。通常,在生产环境中,您会使用 `queue:work` 命令来启动它们,但这些被认为是长生命周期的进程,并将启动的应用程序状态存储在内存中。这意味着在您进行任何代码更改后,您需要重新启动它们,这样它们才能具有新的状态。
在本地开发时,这可能会很麻烦,如果您像我一样,您可能会忘记重新启动它们。这会让您绞尽脑汁,为什么您所做的更改不起作用。我个人在做这件事上浪费了很多时间,我认为这是一件很容易忘记的事情。为了让过去成为过去,Laravel 提供了 `queue:listen` 命令,专门用于本地工作。它不会将应用程序状态加载到内存中,因此您在进行代码更改时无需重新启动队列。
这两个命令是等效的。
php artisan queue:work --queue=high,default
与以下命令相同
php artisan queue:listen --queue=high,default
但请记住,您永远不应该在生产环境中使用 `queue:listen`,因为它比 `queue:work` 命令的效率要低得多。