cronモジュールについて

ZF-Exではcron処理を単一のモジュールとして独立させています。このようにする事で、cron処理を他の処理と同じ規約で処理を書く事ができる、cronの設定の記述を平易化できる、cronの定期実行を別のサーバに設定する事ができる等のメリットがあります。この項ではこれらの設定について説明を行います。

基本的な説明

cronモジュールには初期では次のコントローラが含まれています。それぞれのコントローラ名に対応する期間での実行を想定していますが、必要に応じて拡張・変更して下さい。

  • application
    • modules
      • cron
        • controllers
          • DailyController.php
          • ErrorController.php
          • HourlyController.php
          • MonthlyController.php
          • WeeklyController.php
        • views
          • layouts
            • default.tpl
          • mail_templates
            • body
            • title
          • scripts
            • daily
              • index.tpl
            • hourly
              • index.tpl
            • monthly
              • index.tpl
            • weekly
              • index.tpl

 

ZF-Exではphpのファイルを指定し実行するのではなく、他のモジュールの処理と同様にコントローラを介して実行します。そのため、cronではphpの実行ではなくwgetにより行います。例えば日次のcron処理は次のように設定します。

0 12 * * * wget http://mydomain.com/site/cron/daily/

wgetのアクセスにより処理を行うため、サーバが自分自身のドメイン名の名前解決が可能となっている必要があります。また、次の項目で説明するようにIPアドレスを設定すれば外部のサーバからでもcron処理を実行可能です。

IPアドレスの設定

他のモジュールと比べてcronモジュールへアクセスするケースは限定されるため、IP制限が設定されるようになっています。サーバ自身のIPアドレスの他、params.ini中にあるcron_ipに記述したIPアドレスが許可されます。IPアドレスを記述する事で外部のサーバに定期実行を設定する事ができます。