工匠 cron 作业生成许多进程
aritsan crontab job generate many progcess
我使用 aritsan 命令(lavaral 5.1)处理后台作业,
我按照mamul在crontab里设置了* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1.
我的工作设置像
'$schedule->command('job')->cron('0 * * * *');'
在Kernel.php
这个任务运行良好,但是当我在几个小时后检查我的服务器进程时,我发现 aritsan 生成了很多进程,
注意:在我的工作中,我在handle()
方法中程序结束后写exit()
。
请帮我看看为什么artisan生成那些progcess(不退出?),它占用很多内存。
非常感谢!
~ ps -aux|grep artisan|grep -v grep|wc -l
24
root 15690 0.0 2.3 235588 11872 ? S Nov16 0:05 /usr/local/bin/php artisan job
root 16382 0.0 2.3 237748 11996 ? S Nov16 0:06 /usr/local/bin/php artisan job
root 17735 0.0 2.3 237748 12036 ? S Nov16 0:05 /usr/local/bin/php artisan job
root 17786 0.0 2.4 237748 12052 ? S Nov14 0:15 /usr/local/bin/php artisan job
root 20274 0.0 2.4 237748 12056 ? S Nov14 0:14 /usr/local/bin/php artisan job
root 23771 0.0 2.4 237748 12056 ? S Nov14 0:12 /usr/local/bin/php artisan job
root 24191 0.0 2.4 237748 12056 ? S Nov16 0:03 /usr/local/bin/php artisan job
root 26192 0.0 2.4 237748 12048 ? S Nov16 0:02 /usr/local/bin/php artisan job
root 26287 0.0 2.4 237748 12048 ? S Nov14 0:12 /usr/local/bin/php artisan job
....
您应该尝试使用
手动执行计划任务
php /path/to/artisan schedule:run
看看需要多少时间 run.If 这需要很多时间,这意味着你在某个地方遇到了瓶颈,而且它永远不会到达你的 exit()。
您可能有一个竞争条件,多个进程请求相同 thing.You 需要找到耗时的任务并尝试优化 it.Also 您可能想使用
->withoutOverlapping();
以便不超过一项任务同时 运行。
我使用 aritsan 命令(lavaral 5.1)处理后台作业,
我按照mamul在crontab里设置了* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1.
我的工作设置像
'$schedule->command('job')->cron('0 * * * *');'
在Kernel.php
这个任务运行良好,但是当我在几个小时后检查我的服务器进程时,我发现 aritsan 生成了很多进程,
注意:在我的工作中,我在handle()
方法中程序结束后写exit()
。
请帮我看看为什么artisan生成那些progcess(不退出?),它占用很多内存。
非常感谢!
~ ps -aux|grep artisan|grep -v grep|wc -l
24
root 15690 0.0 2.3 235588 11872 ? S Nov16 0:05 /usr/local/bin/php artisan job
root 16382 0.0 2.3 237748 11996 ? S Nov16 0:06 /usr/local/bin/php artisan job
root 17735 0.0 2.3 237748 12036 ? S Nov16 0:05 /usr/local/bin/php artisan job
root 17786 0.0 2.4 237748 12052 ? S Nov14 0:15 /usr/local/bin/php artisan job
root 20274 0.0 2.4 237748 12056 ? S Nov14 0:14 /usr/local/bin/php artisan job
root 23771 0.0 2.4 237748 12056 ? S Nov14 0:12 /usr/local/bin/php artisan job
root 24191 0.0 2.4 237748 12056 ? S Nov16 0:03 /usr/local/bin/php artisan job
root 26192 0.0 2.4 237748 12048 ? S Nov16 0:02 /usr/local/bin/php artisan job
root 26287 0.0 2.4 237748 12048 ? S Nov14 0:12 /usr/local/bin/php artisan job
....
您应该尝试使用
手动执行计划任务php /path/to/artisan schedule:run
看看需要多少时间 run.If 这需要很多时间,这意味着你在某个地方遇到了瓶颈,而且它永远不会到达你的 exit()。 您可能有一个竞争条件,多个进程请求相同 thing.You 需要找到耗时的任务并尝试优化 it.Also 您可能想使用
->withoutOverlapping();
以便不超过一项任务同时 运行。