首页 > 解决方案 > 如何在没有等待响应的情况下重复 PHP

问题描述

我有 vps,需要一些案例帮助,在 crontab 中每分钟都有命令运行

* * * * * /usr/share/html/mysite/do.php

在 do.php 文件中有这样的东西

<?php
    class job
    {   
        function fetch()
        {
            global $curl;

            for($i=0;$i<4;$i++) {
                $res = $curl->get('http://www.****.com/data.php');
                if($res == 'OK') {
                    return 'OK';
                }
                sleep(60);  
            }
        }       
    }   
    $job = new job();

    $value = 5;
    for($i=0;$i<$value;$i++) {  
        $job->fetch();  
    }
?>

现在我的问题是$job->fetch();我想重复五次而无需等待,但我的问题是它的等待响应时间function fetch 可能为 1 分钟或最多 4 分钟,我需要同时运行此作业 5 次。注意:我可以使用任何东西 curl exec 等......

标签: phpfor-loopcurlexec

解决方案


您不能在 php 中同时运行 5 个函数,它是一种同步语言和单线程(可以与库一起使用 tweeked如何在 PHP 应用程序中使用多线程。如果您的函数获取需要 1 分钟才能运行,您必须等待 1在下一轮循环和下一次调用 fetch 之前的一分钟。


推荐阅读