バッチを書くときのおすすめマトメ

先日はバッチファイルのtipsについて少し書きました。
具体的には僕がどんな風に書いてるのか、その雛形を紹介します。

<?php
/**
 * うんたらバッチ。
 * なんたらかんたら。
 *
 * @package    MyApplication
 * @subpackage batch
 * @version    $Id$
 */
 
define('SF_ROOT_DIR',    realpath(dirname(__file__).'/..'));
define('SF_APP',         'admin');
define('SF_ENVIRONMENT', 'prod');1
define('SF_DEBUG',       true);2
 
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
sfContext::getInstance();3
sfConfig::set('sf_web_debug', false);4
 
// 実行
try {
    HogeHogePeer::batchHogeHoge();5
 
} catch (Exception $ex) {
    sfLogger::getInstance()->alert($ex->__toString());
    echo $ex->__toString();6
    exit(-1);
}
?>

ひとつずつ説明します。

  • ※1 cliとするとCLIモードですが、prodやdevのほうが色々と便利です。
  • ※2 それが重要なバッチなら、運用中もdebugにするのも一つの考え方かも知れません。
  • ※3 symfony init-batchで作られる雛形よりも、こちらの方をお勧めします。
  • ※4 web_debugは切りましょう
  • ※5 バッチのエントリにロジックをずらずら書くことはあまり推奨しません。
  • ※6 エラーはきちんと処理しましょう。一般的なtipsですが例外のログ記録にはtoString()をおすすめします。

いかがでしたでしょうか。
symfony init-batchの雛形には色々と微妙な点があるので、ご自身で工夫をされるのが良いかと思います。
面白い工夫を見つけたら僕にも教えてくださいねヽ(´ー`)ノ

Leave a Reply

Name (required)
Mail (will not be published) (required)

Your Comments:

Spam Protection by WP-SpamFree