ハードディスクメンテナンス

投稿記事数[8640]以上!PC,旧ゲーム,カメラ,動画などを、アヤしゐ專門妖語を使ッて解説スル!

CRONを使わずにスケジュールを実行(PHP)

   


スポンサーリンク

通常、phpファイルは、それ自体がブラウザ等により表示(リクエスト)されなければ実行されません。

表示させずに実行するためにはCRONを使うことになります。

しかし、サーバーでCRONが使えないサーバーもあります。

この場合、プログラムを書いたページのヘッダに

<META HTTP-EQUIV=”refresh” CONTENT=”秒数”>

を入れておき、そのページをネットに接続された常時起動のパソコンで表示させておく方法があります。

原始的かつ強引ですが…

これにより、プログラムをN秒毎に実行させることができます。

秒数を小さくするとサーバーに負荷がかかるので、最低でも300秒(5分)程度にしておきましょう。

しかし、これでは実行間隔の設定しかできず、N秒毎に延々と実行されてしまいます。

そこで、

・PHPで条件を指定(if,elseif,else)

しておき、条件を満たした時のみに実行するようにすれば、CRONにある程度近づけられます。

例:午前10時になったら実行する

時での条件分岐ですが、

$now_hour = date(“H”) ;

で時のみが取得できます。

これが10以上($now_hour>=”10)になれば…とすれば10時以降に実行されますが、

これだけでは、午前10時以降、23時59分59秒まで、N秒毎に実行されてしまいます。

スポンサーリンク

「午前10時になったら実行する、かつ、1日1回」

という場合は、実行日時をDBにINSERTしておき、

「同日でなく」かつ「10時以降」であれば実行する、とすればよいでしょう。

//現在の年月日
$now_date = date(“Y-m-d”) ;

//最終実行年月日
$last_date = “DBからSELECTした最終実行年月日” ;

と変数に格納しておき、

if($last_date!=$now and $now_hour>=”10″)

とします。

実行結果をDBに格納することは、実行されたかどうかのログを取ることにもなります。

もちろん、

「日付が変わったら実行する、かつ、1日1回」

ということも可能であり、前日のページビューをメールで報告させることもできます。

なお、条件分岐の前に「N秒毎」という大前提があるため「午前10時ジャストに実行」は、困難です。

N=300(5分)の場合、運悪く最終表示が「午前09時59分59秒」であれば、次の表示は「午前10時04分59秒」となり、約5分遅れることになります。

実行時刻が接近したら <META HTTP-EQUIV=”refresh” CONTENT=”秒数”> の秒数そのものを小さくする(頻度を上げる)等の工夫で、負荷を抑えつつ、この遅れを縮めることができますが、数分の遅れが大きな問題となる局面は、個人レベルではそれほど多くはないでしょう。

前日のページビューの報告が、約5分遅れても、翌朝に見るでしょうし…

スポンサーリンク



sha-bc@336×280

sha-bc@336×280


sha-bc@336×280

sha-bc@336×280

  関連記事

B017D7HOAQ
ELECOMの 無線LANルーター 親機 11ac/n/a/g/b 867+300Mbps WRC-F1167ACF2 が本日の特選商品で3,800円!

スポンサーリンク 有線は10/100まで! ELECOM WIFI 無線LANル …

B016W5PQZ0
ASUSの SIMフリースマホ ZenFone 2 Laser 16GB ホワイト が本日の特選商品で24,500円!

スポンサーリンク 前回(25,900円)より1,400円安!! OCN モバイル …

B010F4OBJQ_14100円
[最安更新] NEC Aterm MR04LN 3B LTE対応 モバイルルーター OCN モバイル ONE マイクロSIM付 が特選タイムセールで14,100円!

スポンサーリンク OCN モバイル ONEのSIMがセットになっているが、契約す …

B015WCN1HO
NEC Aterm MR04LN LTE対応 モバイルルーター ビッグローブSIM付 がタイムセールで19,872円!

スポンサーリンク ビッグローブのSIMがセットになっているが、契約する義務はなく …

B00GOJ8GAW
ELECOM(エレコム)の 無線LANルーター 親機 11ac/n/a/g/b 1300+450Mbps WRC-F1167ACG がタイムセールで7,880円!

スポンサーリンク ELECOM WiFi 無線LANルーター 親機 11ac/n …

富士通製スマホ登場記念キャンペーン
[2015年11月19日~期間限定] mineoで富士通のarrows M02がアマゾンギフト券3,000円分のプレゼントにより実質価格29,400円に!

スポンサーリンク mineo(マイネオ)が、富士通製スマホ(arrows M02 …

B015WCN1HO
NEC Aterm MR04LN LTE対応 モバイルルーター ビッグローブSIM付 がタイムセールで19,872円!

スポンサーリンク ビッグローブのSIMがセットになっているが、契約する義務はなく …

mineo_パケットギフト
[終了] mineo(マイネオ)のパケットギフト配布祭!早い者勝ち!!②

スポンサーリンク 格安MVNOであるmineo(マイネオ)は、持っている容量をパ …

B01HCT7DR4
NETGEAR(ネットギア)の SIMフリー モバイルルーター AirCard 予備BT付 AC785-100JPS/SET がタイムセールで12,972円!

スポンサーリンク 関連:AC785-100JPS NETGEARのSIMフリーモ …

B00GOJ8GAW
ELECOMの 無線LANルーター 親機 11ac/n/a/g/b 1300+450Mbps WRC-F1167ACG がタイムセールで7,480円!

スポンサーリンク ELECOM WiFi 無線LANルーター 親機 11ac/n …