• php 即使客户端或者服务器断开(如关掉浏览器)脚本也可以继续执行


    <?php
    ignore_user_abort(); // run script in background
    set_time_limit(0); // run script forever
    $interval=60*15; // do every 15 minutes...
        do{
           // add the script that has to be ran every 15 minutes here
           // ...
           sleep($interval); // wait 15 minutes
        }while(true);
    ?>
    <?php
    ignore_user_abort();           // 即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
    set_time_limit(0);             // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
    $interval=20;               // 时间间隔 单位 秒
    $key_file="key.txt";          // 配置文件
    if (isset($_GET['s']))
    {
    if ($_GET['s']=="0"){        // 停止工作,但不退出
        $s="false";
        echo "Function is off";
    }
    elseif ($_GET['s']=="1"){      // 工作
        $s="true";
        echo "Function is on";
    }
    elseif ($_GET['s']=="2"){      // 退出
        $s="die";
        echo "Function exited";
    }
    else
        die("Err 0:stop working 1:working 2:exit");
    
    $string = "<?php
     return "".$s."";
    ?>";
    write_inc($key_file,$string,true);
    exit();
    }
    if(file_exists($key_file)){
    do{
        $mkey = include $key_file;
        if ($mkey=="true"){          // 如果工作
        ///////////////////// 工作区间 //////////////////////////////////
          $showtime=date("Y-m-d H:i:s"); 
          $fp = fopen('func.txt','a');
          fwrite($fp,$showtime."
    ");
          fclose($fp);
        ///////////////////////////////////////////////////////////////////
        }
        elseif ($mkey=="die"){        // 如果退出
          die("I am dying!");
        }
        sleep($interval);           // 等待$interval分钟
    }while(true);
    }
    else
    die($key_file." doesn't exist !");
    function write_inc($path,$strings,$type=false)
    {   
    $path=dirname(__FILE__)."/".$path;
    if ($type==false)
        file_put_contents($path,$strings,FILE_APPEND);
    else
        file_put_contents($path,$strings);
    }
    ?>
    

      

  • 相关阅读:
    Block的强强引用问题(循环引用)
    自己封装的下载方法
    MJRefresh上拉刷新下拉加载
    JavaScript 模块的循环加载
    webpack使用require注意事项
    console.log高级用法
    path.resolve()和path.join()的区别
    深入理解react
    react children技巧总结
    揭秘css
  • 原文地址:https://www.cnblogs.com/jackluo/p/3314634.html
Copyright © 2020-2023  润新知