Categories: php

YiiでCronを利用する方法

YiiでCronを利用する場合、

  1. コマンドライン用の設定をする
  2. コマンドラインで動かす処理を作成する
  3. Cronに登録する

の作業をする必要があります。

コマンドライン用の設定をする

コマンドラインの処理を動かす際に利用するYiiの設定は、protected/config/console.phpにあります。DBやエクステンションを利用するのであれば、protected/config/main.phpと同様の設定をする必要があります。

その後、Cronで動かすコマンドを以下のように追記します。

return array(
  'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
  'name'=>'My Console Application',

  'commandMap'=>array(
    'cronjob'=>array(
      'class'=>'application.commands.CronJobCommand',
    ),
  ),

cronjobがコマンド名、application.commands.CronJobCommandがこのコマンドの
クラスを記述したパスエイリアスです。

コマンドラインで動かす処理を作成する

protected/commands/CronJobCommand.phpを作成します。

class CronJobCommand extends CConsoleCommand
{
  public  run($args)
  {
    $error=false;

    //Cronで実行する処理を書く

    //処理に失敗した場合は1を返す
    //処理に成功した場合は0を返す
   return $error ? 1 : 0;
  }
}

Cronに登録する

@daily yiic cronjob

のようにCronに登録すれば、毎日cronjobの処理が動くようになります。

nakade

Share
Published by
nakade
Tags: Yii