PHP利用監控寶來執行Whmcs的自動任務

好吧,實際上是用Linux的計劃任務徹底可行,不過…不會-_- php

想了想,能夠利用監控寶的定時訪問的特徵,來執行Whmcs的定時任務. 併發

但是,糾結的地方來了…監控寶最長的監控間隔是1小時… 測試

所以,這段代碼就誕生了… url

首先,分析一下,倘若監控寶每隔1小時會訪問一次指定的URL,這樣就須要一個計數器,又因不能常駐內存,寫SQL麻煩,so,使用文件存放. .net

一天24小時,監控寶會訪問24次,可是,監控寶會有兩個節點同時訪問,所以24*2=48. code

對php不熟,因此這裏不考慮併發的問題.因爲涉及到文件操做,因此,沒有權限是不行的 內存

放出代碼.. get

<?php
    /*
    * URL: www.okss.net  */
    set_time_limit(0);
    $fileName = "count.love";
    $urls = array("http://my.getvm.net/cron.php"
        ,"http://billing.getvm.com/cron.php");
    //若是文件不存在
    if(!file_exists($fileName))
    {
        CreateFile($fileName,0);
        exit();
    }
    if (!is_readable($fileName)) {
        //文件不存在或者沒法讀取
        die('File does not exist or could not be read!');
    }else
    {
        $count = file_get_contents($fileName);
        $count++;
        if($count>=48)
        {
            //監控寶有兩個節點同時訪問,因此這裏不是24小時
            foreach ($urls as $key => $value) {
                file_get_contents($value);
            }
            $count=0;
        }
        echo"$count";
        DeleteFile($fileName);
        CreateFile($fileName,$count);
    }
 
    //建立文件
    function CreateFile($fileName,$value)
    {
        $fp = fopen($fileName, "w+");
        fwrite($fp, $value);
        fclose($fp);
    }
 
    //刪除文件
    function DeleteFile($fileName)
    {
        @unlink($fileName);
    }
?>

測試了一下仍是有效果的*^^* 產品

最後,怎麼可能告訴你..bae等雲產品,以及da,cp面板都是支持cron的.. it

相關文章
相關標籤/搜索