Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 laravel 5.4队列:工作——一次,但最多20个工作_Php_Laravel_Cron_Queue_Schedule - Fatal编程技术网

Php laravel 5.4队列:工作——一次,但最多20个工作

Php laravel 5.4队列:工作——一次,但最多20个工作,php,laravel,cron,queue,schedule,Php,Laravel,Cron,Queue,Schedule,我正在尝试使用laravel时间表处理激活电子邮件队列 我知道我应该用主管来管理工人执事 但我无法在服务器上安装它, 我只需要使用时间表(每分钟使用cronjob) 我使用“crontab-e”为计划添加了cronjob,它每分钟都在运行 * * * * * /usr/local/bin/php-5.6 [project dir]/artisan schedule:run > '/dev/null' 2>&1 在app/console/kernal.php中添加的sc

我正在尝试使用laravel时间表处理激活电子邮件队列

我知道我应该用主管来管理工人执事

  • 但我无法在服务器上安装它, 我只需要使用时间表(每分钟使用cronjob)

我使用“crontab-e”为计划添加了cronjob,它每分钟都在运行

* * * * * /usr/local/bin/php-5.6 [project dir]/artisan schedule:run > '/dev/null' 2>&1
在app/console/kernal.php中添加的schedule函数中

$schedule->command('queue:work --queue=activation-email --timeout=30 --once')->withoutOverlapping()->everyMinute();
它正在工作,但不好,因为它每分钟只能处理一封邮件,我希望它每分钟运行一次,每分钟至少处理20-30封邮件


用户不能等待超过1分钟的激活电子邮件,如果多个用户在同一时间段注册,用户将等待太长时间!女巫很坏

因此,一旦需要运行,每分钟最多做10个工作并死亡

如何在不运行后台进程的情况下执行队列 一直都是背景

我在网上搜索了几个小时,却找不到解决方案


谢谢你

谢谢你的帮助

编辑:

我试着这样做:

        for ($x = 1; $x <= 10; $x++) {
        $schedule->command('queue:work --queue=activation-email --timeout=30 --once')->withoutOverlapping();
    }
for($x=1;$x命令('queue:work--queue=activation email--timeout=30--one')->不重叠();
}

但这感觉太不对了…每天开10个执事,而不是一个做10个工作…但我工作得很好(而且很快),但我猜这会消耗CPU。有更好的解决方案吗?谢谢…

maby一种方法,让它运行5分钟,优雅地停止它,然后每5分钟重新启动一次吗?有人吗?