我正在使用 Laravel 开发一个 Web 应用程序。 我需要使用 laravel 队列作业。 我编写了队列作业,如果我使用运行 laravel 队列工作程序,它会很好地工作
php artisan queue:work
但是在生产中,当我使用 CPanel 提供的终端运行该命令时,它会在几天后停止。
我搜索了好几天的答案,但没有找到答案。 他们中的许多人建议安装 Supervisor,但 CPanel 是共享托管,我无法获得安装它的 root 访问权限。 也有人建议使用 cron 作业,但在一段时间后它会创建太多的 laravel 队列工作线程,因为每次 cron 作业调用时它都会创建新的工作线程。
有人可以帮助我吗? 预先感谢
您可以使用 cron 来销毁当前的工作程序并创建一个带有标志
--once
的新工作程序
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --once')
->everyMinute()
->withoutOverlapping();
}