具体的には、ひとつフラグを用意して、掲示板で投稿するたびにフラグを立てる、30分おきにそのフラグをチェックしてフラグが立っていたらツイートしてフラグを下げる、という感じでやってます。
このフラグをわざわざDBで管理することないよなぁと思ってファイルで管理することにしました。Yiiでファイルの読み書きってどうやるんだろうってググった結果、cfileなるエクステンションを見つけました。
cfile | Extension | Yii PHP Framework
読み書きのしかた、はまった点をざっくりメモ
ルートディレクトリ直下にfilesというディレクトリを作成してflag.datを作成。
$file=Yii::app()->file->set('files/flag.dat');
// 読み
$flag = $file->contents;
// 書き
$file->contents='hoge';
これだけです。マジックメソッドでいろいろやってくれてるみたいでとてもシンプルに書けます。
はまったのはファイルのパスの指定。cronで実行するとrealpathがroot/filesではなく、root/protected/filesになってました。
なのでパスの指定を
$file=Yii::app()->file->set(dirname(__FILE__) . '/../../files/flag.dat');
こうしてみたところうまいこといきました。
0 件のコメント :
コメントを投稿