我是否有任何智能方法可以设置具有随机时间间隔的重复任务。
如果我想在每次3分钟到5分钟的范围内完成任务A,请说出来 示例:
第一项任务A - 3分钟
第二项任务A - 4分钟
第3任务A - 5分钟
第4任务A - 4分钟
...
最后,我的解决方案是laravel Queue工作 https://laravel.com/docs/5.6/queues
答案 0 :(得分:0)
有多种方式。
1)您可以使用crontab。做一个你的任务cron并在你的crontab中加入5分钟的间隔。
2)如果你只想处理php,那么你必须在sleep
期间添加loop
,如下所示。在nohup中运行脚本作为进程。所以它将继续在后台运行。
<?php
$i = 0;
while(1){
//Perform you task A here.
if($i == 0){
$sleep = 180;
$i = 1;
}else{
$sleep = 300;
$i = 0;
}
sleep($sleep);
}
答案 1 :(得分:0)
使用调度程序 这是链接:Laravel Doc
使用调度程序可以使代码清晰易懂。