Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

PHP – さくらVPSでcronを使ってプログラムを自動定期実行 –

0 Comments
Posted by Kuro on 2013/03/04

スポンサードリンク

ゲームアプリのランキングで前日比を表示させようと思ったのですが、それには前日のデータが必要です。

ということで、cronというコマンドの自動実行機能を使ってランキングをデータベースに保存してみることにしました。

さくらVPSだとデフォルトでcronが動いているらしいのですが、一応以下のコマンドで確認。

“crond (pid 2559) を実行中…”と出ればOK。

“etc”ディレクトリにcrontabというファイルがあるのでこれを編集します。

crontab記入例:

左の数字で実行条件を指定しています。
左から分,時間,日,月,曜日を半角スペースを空けて記入します。
上の例の場合、時間のところに13とあるので毎日13時に実行されます。

rootは実行ユーザーです。

“/usr/bin/php”はphpのパスで”which php”というコマンドで調べることができます。

“/var/foo/cron_freeGameAppRanking.php”は実行したいファイルのパスです。

参考サイト:
cronの設定(さくらVPS)
さくらVPSでcronの設定

定期実行するPHPスクリプト

cron_freeGameAppRanking.phpの中身は以下のようになっています。

事前に作っておいたテーブルにapp_id, ranking, dateを保存します。
dateは”20130303″というような8桁のint型で保存しています。
(今日の日付に-1することで前日かどうかを判断しているので月をまたぐとデータを取ってこれなくなることにあとで気が付きましたがとりあえずはこれで)

wordpressでのphp実行コード

あとはwordpressのランキング表示用ショートコードを書き換えます。

前日比表示用のスペースを作るためにCSSも1ヶ所書き換えました。

とりあえずは、前日13時のランキングと比較しています。
0時であっても23時であっても、前日の13時との比較です。
appleのrssだと400位までしか取ってこれないようなので、400位圏外から急にランクインした場合もnewになります。

今後はもうちょっと細かくデータを取って24時間前との比較に近づけるとか、数日間の推移を見せるとか、何かしら改良させていこうかと思います。

追記:
当面古いデータを使う予定がないので、以下のSQL文を追加して使わないデータは消しておくことにします。

追記:ランキングページを削除しました。

スポンサードリンク


Filed under PHP, Programming
Tagged as ,
You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

Popular Posts