cron登録数1個で複数の間隔で実行する方法

レンタルサーバーによってはcronの登録数は1つだけー!みたいなのもよくありますが

実行したいスクリプトを呼び出す役割のcron用スクリプトを書けば複数の間隔で複数のスクリプトを実行することができます。

例えば、cronに登録するスクリプトを「cron.php」とかにした場合。この「cron.php」はサーバーが許す一番最小実行間隔で実行するとします。(例えば1分ごと)

これで「cron.php」は1分毎に実行されるので、あとはその中で条件分岐させて色んなタイミングでいろんなスクリプトを呼び出せばOKです。

例えば10分毎に一回実行したスクリプトがあるときは

switch(date('i')%10) {
 case 0:
  include(/home/xxxx/xxx/xxxx/oppai.php);
  break;
 case 1:
  ・・・・・・
  break;
}

の様に書きます。呼び出すスクリプトが大量にある場合は上記のようにswitch文でも使って実行時間をうまく分散させるのがレンタルサーバー様に嫌われないコツです。

▼うまく分散させる振り分けのサンプル
・毎分1回実行するもの→そのまま毎分実行させる(しかない。分散のしようがない)。
・10分毎に1回実行するもの→「分」の下一桁が6,7の時に実行(最大2個に分散できる)
・毎時1回実行するもの→「分」の下一桁が0,1,2,3,4,5の時に実行(最大36個に分散できる)
・1日1回実行するもの→「分」が58 の時に実行(時間毎に振り分ければ最大24個に分散できる)
・毎週1回 実行するもの→毎日2:59に実行(曜日毎に振り分ければ最大7個に分散できる)
※それぞれの間隔で実行したいスクリプトの量によって数字は微調整すればよい。

 

Be Sociable, Share!

コメントを残す

メールアドレスが公開されることはありません。