Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理php artisan队列:侦听_Php_Laravel_Laravel Queue_Laravel Jobs - Fatal编程技术网

如何处理php artisan队列:侦听

如何处理php artisan队列:侦听,php,laravel,laravel-queue,laravel-jobs,Php,Laravel,Laravel Queue,Laravel Jobs,我在Laravel队列系统中面临严重问题,请帮助我解决此问题 一旦我使用 $mailer = Mail::to($email_to)->queue(new ContactGeneral($data)); 它存储到数据库中,并从terminalphp artisan queue:listen运行此命令。一旦我关闭终端,它就不会侦听我的队列 为此,我在kernem.php中设置了一个调度文件,类似于每分钟运行的文件 protected function schedule(Schedule

我在Laravel队列系统中面临严重问题,请帮助我解决此问题

一旦我使用

$mailer = Mail::to($email_to)->queue(new ContactGeneral($data));  
它存储到数据库中,并从terminalphp artisan queue:listen运行此命令。一旦我关闭终端,它就不会侦听我的队列

为此,我在kernem.php中设置了一个调度文件,类似于每分钟运行的文件

protected function schedule(Schedule $schedule){
    $schedule->command('queue:listen')->everyMinute();
}
在cronjob中设置此行并正常工作

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
问题是,由于每分钟运行每分钟运行它不会杀死前一个进程,并在下一分钟运行另一个进程,因此会减慢我的服务器

请让我知道什么是最好的方式来实现这一点

提前感谢

最好的方法是使用。但是,如果在共享宿主环境中运行应用程序,则可以使用以下命令处理队列一次,然后退出该过程,从而释放内存:

php artisan queue:work --once
* * * * * cd /path-to-your-project && php artisan queue:work --once
根据您将拥有的队列数量,将队列设置为每1、2或3分钟运行一次,以确保前一个进程有时间使用队列,并且它们不会经常干扰。我认为您可以使用以下命令:

php artisan queue:work --once
* * * * * cd /path-to-your-project && php artisan queue:work --once
最好的方法是使用。但是,如果在共享宿主环境中运行应用程序,则可以使用以下命令处理队列一次,然后退出该过程,从而释放内存:

php artisan queue:work --once
* * * * * cd /path-to-your-project && php artisan queue:work --once
根据您将拥有的队列数量,将队列设置为每1、2或3分钟运行一次,以确保前一个进程有时间使用队列,并且它们不会经常干扰。我认为您可以使用以下命令:

php artisan queue:work --once
* * * * * cd /path-to-your-project && php artisan queue:work --once

不,您不需要安排此过程

只要队列:工作进程正在运行他就会查看您的“作业”表并逐个任务运行


您需要的是确保当您关闭控制台时进程不会结束,正如user8555937和Webinion所说,您需要supervisor及其配置文件,一旦您运行它,它将在后台运行,您可以忘记它

不,您不需要安排此进程

只要队列:工作进程正在运行他就会查看您的“作业”表并逐个任务运行


您需要的是确保当您关闭控制台时进程不会结束,正如user8555937和Webinion所说,您需要管理器及其配置文件,一旦您运行它,它将在后台运行,您可以忘记它

队列工作器必须在后台持续运行。Laravel建议使用
supervisor
来执行此操作,在不使用
队列中有一个示例:作为调度程序侦听
。而是按照文件要求安装监督员这回答了你的问题吗?队列工作程序必须在后台持续运行。Laravel建议使用
supervisor
来执行此操作,在不使用
队列中有一个示例:作为调度程序侦听
。而是按照文件要求安装监督员这回答了你的问题吗?