zoukankan      html  css  js  c++  java
  • 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);
    }
    ?>
    

      

  • 相关阅读:
    vue-scroller
    封装toast组件挂载到插件上,仿vux的插件调用toast
    js 滚动加载
    vue
    object.difineProperty
    vue-computed 计算属性
    数组去重
    css布局,左边的滚动时右边不随着滚动
    【洛谷 P5162】 WD与积木(生成函数+NTT)
    【2020省选模拟】题解
  • 原文地址:https://www.cnblogs.com/jackluo/p/3314634.html
Copyright © 2011-2022 走看看