如何在PHP / Laravel中以随机间隔设置重复任务?

时间:2018-03-06 07:59:31

标签: php laravel timer cron schedule

我是否有任何智能方法可以设置具有随机时间间隔的重复任务。

如果我想在每次3分钟到5分钟的范围内完成任务A,请说出来 示例:

第一项任务A - 3分钟
第二项任务A - 4分钟
第3任务A - 5分钟
第4任务A - 4分钟
...

最后,我的解决方案是laravel Queue工作 https://laravel.com/docs/5.6/queues

2 个答案:

答案 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

使用调度程序可以使代码清晰易懂。