php言語のフレームワーク「cakephp」はバッチ処理にも対応している。

CakePHPにはサーバ側で実行するshell機能が存在する。ブラウザのhttpリクエストに頼らず、更新したい時間にcronに設定しておけばバッチ処理することが可能。
一応忘れないうちにメモ。

/app/vendors/shells/batch.php

<?php
class BatchShell extends Shell {
    // モデルを使用する場合指定しておく
    var $uses = array('Model');

    // 実行用メソッド
    function main() {
        //ここにコードを書く
    }
}
?>

デフォルトでは、main()メソッドが実行されます。

次に作成したファイルをサーバにUPし実行する。
実行用のスクリプトは下記

/usr/local/bin/php ~パス~/cake/console/cake.php 作成したファイル名
(例)
#/usr/local/bin/php /home/xxxxxx/cake/console/cake.php batch
※引数がある場合は、作成したファイル名の後にスペースを空けて引数を書く

#/usr/local/bin/php /home/xxxxxx/cake/console/cake.php batch ‘day’
その時の実行用メソッドは引数を受け取れる用にする必要がある。まぁ~エラーにはならないけど・・・

<?php
class BatchShell extends Shell {
 // モデルを使用する場合指定しておく
 var $uses = array('Model');

 // 実行用メソッド
 function main($a) {
 //ここにコードを書く
 }
}
?>

コメントを残す

*

サブコンテンツ

このページの先頭へ