Drupalのモジュール(Ultimate Cron)でサイトのバッチジョブの管理
DrupalのデフォルトCronジョブ管理画面ではあまりにシンプルで具体的なジョブ、実行頻度が表示されていない
- 環境:Drupal7.5.4、Cron:コアーモジュール
- Cron管理画面(ホーム » 管理 » 環境設定 » システム » Cron)で具体的なジョブ名、各ジャブの実行頻度が分かりません
- 手動でcron実行
- cron実行URL
- Cronの実行頻度
モジュール(Ultimate Cron)で詳細なCronジョブ管理を行います
- モジュール:Ultimate Cron7.x-2.3 をインストールして有効化
- Cronの管理画面(ホーム » 管理 » 環境設定 » システム » Cron)に具体的なジョブ、実行頻度などが表示されます

- デフォルトのCron管理と違って、スケジューラー、ランチャー、ログ管理、ジョブ管理がプラグインされています
- スケジューラー:簡単、crontab二種類あります。ジョブの実行頻度を設定します。
- ランチャー:Background Process、シリアル二種類あります。シリアルは同じスレート内でジョブを実行します。Background Processではモジュール(Background Process)に依存し、各ジョブをBackground Processに上げて実行します。
- ログ管理:キャッシュとデータベース二種類あります。ジョブ実行ログがDBまたはキャッシュに管理する設定
- ジョブ管理:各詳細のジョブ名、実行頻度、実行頻度の再設定(オーバーライド)を行います
適切なCron動作のトリガー選択/設定が重要
- デフォルトのCron管理では、管理画面上の実行頻度(例:30分毎)より、サイトのページがアクセスされたら、前回の実行時間と比較して、設定された頻度時間より長ければ、Cronを実行させます
- あまりサイトのページのアクセス量が少ないときに、Cronの実行が少ないです
- ジョブに設定された実行頻度より大幅に遅れる可能性があります(アクセスが少ない場合)
- 複数のCron実行トリガーがあります。

- Cron管理画面、Drushで手動のCron実行を行います
- あくまで、必要な時にCronを実行させるので、一時的なものとなります
- Unix/Linux環境では、wgetコマンドでCronのURLを引数にしてCronを実行します