記録

cronの設定数に制限があるさくらサーバーとかで制限以上に使う方法(´Д`)


cronの設定数に制限があるさくらサーバーとかで制限数以上(cron設定を増やす方法
)に使う方法はないかなと考えた結果、自分はこうしました。
一つのPHPファイル(実行ファイル)から複数のファイルをキックすることに!(´Д`)
こうすれば、処理が遅くないファイルなら複数個でも実行できるのではないかと
思ったわけです。結果的に成功しているぽっいです。
※Shellで作れる人は作れるだろうけど自分には無理(´∀`*)ポッいのでPHPで制作しました。
ちなみにさくらレンタルサーバーの場合、php.iniにタイムゾーン設定を
加えてあげてください(date.timezone = Asia/Tokyo ←追加)。
そうしないと動かない恐れがあります。
作っていて思ったことですが、作る考え方はわかるものの、元々メソッドを覚えていない
人間なのでググってメソッド探しにまずヘタりました( ´Д`)=3。その後、完璧なハズとか
思ってソースを実行させるとエラーは出ないものの。思った通りうごかないという事象に
苦しめられること2時間、何でだろうとか思っていて検証してみた結果、メソッドの使い方が
間違っていたり、変数名が間違っていたりとなんとも言えない無情さに襲われましたが
何とか動作するようになったみたいなのでコードをうっぷします。
ソースコードを記載しときます。動作するとは
思いますが誤作動するかもしれないので保証はしません。なお、いつもながら
ソースにはコメントを記載しておりませんのでトレースしてください。
PHPファイルのDLはこちらから( ´Д`)=3 (最終更新日2015/01/12 11:07)
追記2
改良しました。{*改良版はこちら*}
※このPHPファイルを5分置きにキックしていますΣ(゚∀´(┗┐ヽ(・∀・ )ノ。

<?php
	$time_h = array("*","1,2,3,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23","*");
	$time_m = array("*/5","5,10,15,30,45,50,55","0");
	$file_name = array("/home/zen-do/www/zip358.com/index.php","/home/zen-do/www/zip358.com/twitterbot/index-2.php","/home/zen-do/www/zip358.com/twitterbot/index-1.php");
	$h = date("H");
	$m = intval(date("i"));
	$cnt = 0;
	foreach($time_h as $h_ary){
		$chk_h = chk($h_ary);
		if(is_array($chk_h)){
			if(chk2($chk_h,$h)){
				$chk_m = chk($time_m[$cnt]);
				if(chk4($chk_m,$time_m[$cnt],$m,$file_name[$cnt]));
			}
		}else{
			if(chk3($time_h[$cnt],$chk_h,$h)){
				$chk_m = chk($time_m[$cnt]);
				if(chk4($chk_m,$time_m[$cnt],$m,$file_name[$cnt]));
			}
		}
		$cnt++;
	}
	function chk($chk_hoge){
		if(strcmp($chk_hoge,"*") == 0 ){
			return "*";
		}
		if(strstr($chk_hoge,"*/")){
			return mb_substr($chk_hoge,2,strlen(chk_hoge)-2);
		}
		if(strstr($chk_hoge,",")){
			return explode(",",$chk_hoge);
		}
		return $chk_hoge;
	}
	function chk2($chk_hoge,$H_or_M){
		foreach($chk_hoge as $hoge){
				if($H_or_M == $hoge){
					return true;
				}
			}
			return false;
	}
	function chk3($chk_H_or_M,$chk_hoge,$H_or_M){
		if(strcmp($chk_hoge,"*") == 0 ){
			return true;
		}elseif(strstr($chk_H_or_M , "*/")){
			if($H_or_M % $chk_hoge == 0){
				return true;
			}else{
				return false;
			}
		}else{
			if($H_or_M == $chk_hoge){
				return true;
			}else{
				return false;
			}
		}
		return false;
	}
	function chk4($chk_hoge,$chk_hoge2,$m,$file_name){
		if(is_array($chk_hoge)){
			if(chk2($chk_hoge,$m)){
				if(shell_exec("/usr/local/bin/php -f ".$file_name))echo "/usr/local/bin/php -f ".$file_name;
				return true;
			}
		}else{
			if(chk3($chk_hoge2,$chk_hoge,$m)){
				if(shell_exec("/usr/local/bin/php -f ".$file_name))echo " /usr/local/bin/php -f ".$file_name;
				return true;
			}
		}
		return false;
	}
?>

活動支援よろしくお願いします

TweetDeckって言うWindowアプリ使ってます。(`・ω・´)キリ。前のページ

パスワードのチョメチョメ(***)が見えるソフト(Windows)はこれ(ノ´∀`*)次のページ

関連記事

  1. 記録

    お金の増やし方を教えてくださいっていう本を読んで。

    お金の増やし方を教えてくださいという本を読んで難しい内容をこんな自…

  2. 記録

    ハンターハンターはやっぱ見てしまってる。

    ハンターハンターはやっぱ見てしまってる。休載になってから結構経ちまし…

  3. 記録

    ZEROへの回帰:零視点

    https://youtu.be/1w5j543dph4…

  4. 記録

    映画:不都合な真実2、日本でも上映される事が決定。

    映画:不都合な真実2、日本でも上映される事が決定=環境問題の映画。…

  5. 記録

    PHP忘れてしまいそう。

    こういう書き方とか書かなかったら忘れてしまいそうですね。クラスの…

  6. 記録

    幸せの方程式

    あなたの「幸せ」は、周りの人次第:研究結果を読んで思ったことhtt…

PAGE TOP