laravel 5.4队列:工作 - 但限制为20个工作

时间:2017-07-24 12:51:46

标签: php laravel cron queue schedule

我正在尝试使用laravel schedule

来处理激活电子邮件队列

我知道我应该使用主管来管理工作人员,

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

我使用“crontab -e”为日程安排添加了cronjob,并且它每分钟都在运行。

* * * * * /usr/local/bin/php-5.6 [project dir]/artisan schedule:run > '/dev/null' 2>&1

在app / console / kernal.php的计划功能中,我添加了

$schedule->command('queue:work --queue=activation-email --timeout=30 --once')->withoutOverlapping()->everyMinute();

它正在运行,但它没有用,因为它每分钟只能处理一个邮件,我希望它每分钟运行一次,每分钟处理至少20-30封电子邮件...... < / p>

用户不得等待1分钟以上的激活电子邮件,如果多个用户在同一时间段内注册,则用户将等待太长时间!女巫非常糟糕......

所以相反 - 它需要运行 - 最多可以完成10个工作并且每分钟都死掉。

如何在不运行守护进程的情况下执行队列 背景一直在吗?

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

感谢分配,

感谢您的帮助!!

编辑:

我试过这样做:

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

但它感觉太错了......打开10个deamons evey分钟,而不是一个人做10个工作......但我工作得很好(而且速度很快),但我的猜测它正在杀死CPU ......对此更好的解决方案?谢谢...

0 个答案:

没有答案