我可以从控制器触发 Laravel 作业而不是使用 `php artisan queue` 进程吗

Sam*_*fee 4 worker amazon-web-services laravel amazon-elastic-beanstalk

我们在 Elastic Beanstalk 上运行我们的生产系统。我们希望能够通过自动缩放来利用 EBS 的工作线程层。不幸的是,由于 Laravel 队列处理的工作方式,Laravel 期望通过在您的服务器上启动 php 命令行进程来消耗所有队列。EBS 工作层不会以这种方式运行。AWS 安装了自己的侦听器守护程序,它可以通过本地 HTTP 调用拉取作业并将它们提供给您的工作人员。听起来很棒。不幸的是,我无法弄清楚如何从 Laravel 中的路由和控制器调用排队作业,而不是使用内置的 artisan 队列侦听器任务。任何有关如何实现这一目标的线索将不胜感激。

jfa*_*ich 6

您可以使用该Artisan::call方法从代码中调用命令。

$exitCode = Artisan::call('queue:work');
Run Code Online (Sandbox Code Playgroud)

您可以在文档中查看更多信息