Mautic Documentation

Cron Job

Mautic がメンテナンスタスクを制御するために cron jobs が必須となっています。ほとんどのウェブサーバでは cron を追加する方法を SSH, cPanel や他の変更画面で提供しています。cron job のセットアップについて不明な場合はご利用のウェブサーバのマニュアルやサポートへご相談ください。

cron job を実行する頻度はあなた次第です。共有サーバであれば15から30分程度ごとに実行するのが好ましいでしょう。共有サーバの制限により設定した時間が上書きされる場合があります。

以下の cron job の実行時間が重ならないように設定することをおすすめします。

必須

セグメント

セグメントを最新状態に保ちます:

php /path/to/mautic/app/console mautic:segments:update

デフォルトではコンタクトを300件一括処理します。サーバリソースをあまりに消費するようであれば --batch-limit=X オプションを使って一度に処理させるコンタクトの数を減らしてください。Xの部分は一度に処理させるコンタクトの数に置き換えてください。

--max-contacts オプションを使って実行するスクリプト毎に処理するコンタクトの数を制限し,消費するサーバリソースを節約できます。

キャンペーン

適用するコンタクトとともにキャンペーンを最新の状態に保ちます:

php /path/to/mautic/app/console mautic:campaigns:rebuild

スクリプトがバッチ処理するコンタクトの数は300とデフォルトで設定されています。利用中のサーバリソースに対してこの数が多いようであれば --batch-limit=X オプションを使い,Xへ処理させるコンタクトの数に置き換えて調整してください。

スクリプト毎に実行させるコンタクトの数を --max-contacts オプションで制限し,サーバリソースの消費を押させることもできます。

キャンペーンイベントの実行:

php /path/to/mautic/app/console mautic:campaigns:trigger

スクリプトがバッチ処理するイベントの数は100とデフォルトで設定されている。利用中のサーバリソースに対してこの数が多いようであれば --batch-limit=X オプションを使い,Xへ処理させるイベントの数に置き換えて調整してください。

スクリプト毎に実行させるコンタクトの数を --max-events オプションで制限し,サーバリソースの消費を押させることもできます。

オプション

メールキューの処理

ファイルシステムへメールキューを書き出しているように設定されているようであれば,処理させるには cron job が必須です。

php /path/to/mautic/app/console mautic:emails:send

監視中のメールを取得・処理させる

Bounce Management を使っている場合,

php /path/to/mautic/app/console mautic:email:fetch

Webフック

バッチ処理にウェブフックを送るよう Mautic を設定している場合,次のコマンドを使ってペイロードを送信させます。

php /path/to/mautic/app/console mautic:webhooks:process

MaxMind GeoLite2 IP データベースを最新に保つ

Mautic は MaxMind's GeoLite2 IP データベースを標準で使用しています。データベースは (クリエイティブコモンズ 表示--継承 3.0 非移植)[http://creativecommons.org/licenses/by-sa/3.0/deed.ja] でライセンスされており, Mautic のパッケージに同梱できません。データベースは Mautic の設定中に手動でダウンロードするか,自動で更新をダウンロードさせるために cron job で使用できる次のスクリプトを実行するかのいずれかとなっています (MaxMind のデータベース更新は毎月第一火曜日です)。

php /path/to/mautic/app/console mautic:iplookup:download

注意

1.1.3 以前のリリースの場合 cron job コマンドを確実に実行させるために,コマンドへ --env=prod の追加が必須となっています。

ティップスとトラブルシュート

ご利用のサーバで一般的に php-cli といわれるコマンドライン版 PHP が提供されているようであれば, php よりもよりクリーンな出力を求めるために php-cli を使いたくなるかもしれません。BlueHost や PHP を使える他のサーバでは php コマンドはコマンドラインパラメータを コンソール として破棄してしまっているかもしれません。この場合は cron job を動作させるよう php-cli を使用しなくてはなりません。

cron job に関連する諸問題において問題解決の一助となるのが,出力をパイプすることです。たとえば >path/to/somefile.log 2>&1 のように各 cron job の末尾に追加し特定のファイルへ書き出すことです。これによりファイルの中に何が出力されているかを確認することができます。cron job の実行中にエラーが起こっているようであればその内容をファイル読むことで確認できます。エラーがない場合はファイルの中身は空白か他のステータスが残っているはずです。ファイルの最終更新時刻は最後に cron job が実行された時間です。これにより,cron job がスケジュール通りに正しく実行されたのかそうでないかを推測することができます。

SSH アクセスが可能であれば,なにかしらエラーが起こっていないかを直接確認するコマンドを試してみてください。 SSH セッションのもの以外がなかったり,cron の出力が上で説明した通りだったりする場合,サーバのログを確認してみてください。次とよく似たエラーを確認ことができます: 'Warning: Invalid argument supplied for foreach()' in /vendor/symfony/console/Symfony/Component/Console/Input/ArgvInput.php:287 この場合は php ではなく php-cliphp -d register_argc_argv=On を使う必要があります。