Processing large amounts of data in PHP without a browser timeout

前端 未结 4 770
谎友^
谎友^ 2020-12-23 15:12

I have array of mobile numbers, around 50,000. I\'m trying to process and send bulk SMS to these numbers using third-party API, but the browser will freeze for some minutes

4条回答
  •  庸人自扰
    2020-12-23 16:00

    I would write two scripts:

    File index.php:

    
    
    0%

    File job.php:

    set_time_limit(0);                   // ignore php timeout
    ignore_user_abort(true);             // keep on going even if user pulls the plug*
    while(ob_get_level())ob_end_clean(); // remove output buffers
    ob_implicit_flush(true);             // output stuff directly
    // * This absolutely depends on whether you want the user to stop the process
    //   or not. For example: You might create a stop button in index.php like so:
    //     Stop!
    //     Start
    // But of course, you will need that line of code commented out for this feature to work.
    
    function progress($percent){
        echo '';
    }
    
    $total=count($mobiles);
    echo ''; // webkit hotfix
    foreach($mobiles as $i=>$mobile){
        // send sms
        progress($i/$total*100);
    }
    progress(100);
    echo ''; // webkit hotfix
    

提交回复
热议问题