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) { //ここにコードを書く } } ?>