記録

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法。

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法
10年ぐらいまえのコードを見直して改善したコードが下記になります。
10年前はクラスを使わない方法で構築したのだけど、今回はクラスの概念を
使って構築。ここ何年かで自分のコーディングの技術は上がっているかといえば
そうでもないですが、昔よりかは技術の幅は広がっていると思いたいw
※qiita日付は数年前にUPしたのですけど、コード自体は10年前のコードです。
 

<?php
//五分置きのクロンを走らせてください。
//php5.6以上推奨? エラーの場合:explodeを見直してください
class cronphp2{
    public $set = array(
            array("file"=>"/home/tool/test1.php","year"=>"*","month"=>"*","day"=>"*","hour"=>"*","minute"=>"*"),
            array("file"=>"/home/tool/test2.php","year"=>"2018","month"=>"7","day"=>"7","hour"=>"*","minute"=>"*/10"),
            array("file"=>"/home/tool/test3.php","year"=>"*","month"=>"*","day"=>"7","hour"=>"7","minute"=>"7")
        );
    function __construct(){
        if(is_array($this->set)){
            foreach ($this->set as $key => $value) {
                    if(!$this->chk($value["year"],"year"))continue;
                    if(!$this->chk($value["month"],"month"))continue;
                    if(!$this->chk($value["day"],"day"))continue;
                    if(!$this->chk($value["hour"],"hour"))continue;
                    if(!$this->chk($value["minute"],"minute"))continue;
                    if(!$value["file"])continue;
                    $h = @shell_exec("/usr/local/bin/php -f ",$value["file"]);
                    print $value["file"];
                    var_dump($h);
            }
        }
    }
    function chk($q1="",$q2=""){
        if(!$q1)return false;
        if(!$q2)return false;
        switch ($q2) {
            case "year":
            case "month":
            case "day":
                $ren = array("year"=>"Y","month"=>"n","day"=>"j");
                if($q1==="*"){return true;}
                if(is_numeric($q1)){
                    if((int)$q1 == date($ren[$q2])){return true;}
                }else{
                    return false;
                }
                break;
           case "hour":
           case "minute":
                $ren = array("hour"=>"H","minute"=>"i");
                if($q1==="*"){return true;}
                if(is_numeric($q1)){
                    if((int)$q1 == date($ren[$q2])){
                        return true;
                    }else{
                        return false;
                    }
                }else{
                    if(preg_match("/\*\//",$q1)){
                        $q = explode("*/",$q1)[1];
                        if(date($ren[$q2])%(int)$q==0){
                            return true;
                        }else{
                            return false;
                        }
                    }
                    return false;
                }
                break;
            default:
                return false;
                break;
        }
        return false;
     }
}
$crn = new cronphp2();

Twitterの画像を抽出、非API前のページ

jQueryの基礎1次のページ

関連記事

  1. 記録

    WordPressのGutenbergを試してみた。

    WordPressのGutenbergを試してみた。試してみた結果、…

  2. 記録

    映画、マネーモンスターを観てきましたので #映画レビュー

    映画、マネーモンスターを観てきましたので感想なんかを残しときます。…

  3. 記録

    NO LIMIT[ノーリミット]栗城史多さんの場合:自分を超える方法。

    依然、登山家、栗城史多さんが書かれたノーリミットと言う本を読みまし…

  4. 記録

    数値を日本語桁数の読み方に変換するWEBサービスを作りました。

    数値を日本語桁数の読み方に変換するWEBサービスを作りました。…

  5. 記録

    中国古典の知恵に学ぶって本を買いました。

    「中国古典の知恵に学ぶ」って本を買いました。半分ぐらい…

  6. 記録

    映画、母と暮らせばを観てきましので感想なんかを。

    映画、母と暮らせばを観てきましので感想なんかを残しときます。この映…

PAGE TOP