Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Movable Type 6 ManualMovable Type 6 マニュアル

指定日投稿や公開キュー等のスケジュール処理の設定

最終更新日: 2017.10.06

Movable Type では、指定日投稿や迷惑コメント/トラックバックの削除、公開キュー等のスケジュールタスクを拡張しており、次のさまざまな方法でスケジュールタスクを実行できます。

  • cron や Windows タスクスケジューラを利用した run-periodic-tasks スクリプトの実行
  • ログフィードの取得時に実行
  • XML-RPC API で拡張された mt.runPeriodicTasks の利用

run-periodic-task スクリプトの実行

run-periodic-tasks スクリプトを実行すると、指定日投稿などのスケジュールタスクと、公開キューによる再構築が行われます。お使いのサーバーにあわせた方法で定期的に run-periodic-tasks スクリプトが実行されるように設定してください。

crontab を利用したスケジュールタスクの実行 (Linux または UNIX サーバーの場合)

crontab とは、Linux や UNIX サーバー上で定期的にコマンドやスクリプトを実行する cron デーモンの設定ファイルです。crontab に登録することで、定期的に実行することができます。たとえば、毎時0分、20分、40分に実行する場合、次のように記述します。

0,20,40 * * * * cd /path/to/mt; ./tools/run-periodic-tasks

/path/to/mt の部分には新規インストールの事前準備で決定したアプリケーションディレクトリまでのパスを入力します。

cPanel を利用したスケジュールタスクの実行 (LinuxまたはUNIXサーバーの場合)

cPanel とは、ウェブベースのサーバー管理プログラムです。Command to run とラベルの付いたテキストボックスに、次のように記述します。

cd /path/to/mt; ./tools/run-periodic-tasks

/path/to/mt の部分には新規インストールの事前準備で決定したアプリケーションディレクトリまでのパスを入力します。

実行間隔は自由に設定できますが、1分間隔より短くすることはおすすめしません。

Windows のタスクスケジューラを利用したスケジュールタスクの実行

Windows サーバーで動作させている場合は、Windows のタスクスケジューラを利用します。主な設定項目は以下のとおりです。

「全般」タブ

スケジュールタスクの実行ユーザーや、サーバーへのログイン状態での実行の可否を設定します。

create_task_general.png
項目名 解説 設定例
名前 スケジュールタスクの名前を設定します。 Movable Type スケジュールタスク
セキュリティオプション 「タスクの実行時に使うユーザーアカウント」には、run-periodic-tasks スクリプトを実行するユーザーを指定します。ブログディレクトリには、ここで指定したユーザーで書き込めるように権限を設定する必要があります。Administrator など、お使いの環境に合わせて設定してください。
また、サーバーにログインしていないときも実行できるよう「ユーザーがログオンしているかどうかにかかわらず実行する」を選択します。
タスクの実行時に使うユーザーアカウント: Administrator
ユーザーがログオンしているかどうかにかかわらず実行する

「トリガー」タブ

スケジュールタスクの実行開始日時や、繰り返しの間隔を設定します。「新規」ボタンをクリックしてトリガーを作成してください。

create_task_trigger.png
項目名 解説 設定例
タスクの開始 スケジュールタスクの開始方法を設定します。 スケジュールに従う
設定 スケジュールタスクの開始時刻と実行間隔を設定します。 毎日
開始: 2015/05/22 0:00:00
間隔: 1日
詳細設定 繰り返しの間隔などを設定します。間隔を短くするとサーバーへの負荷も高くなりますので、環境や目的にあわせて調整してください。 繰り返し間隔: 15分間
継続時間: 1日間

「操作」タブ

Perl インタープリタのパスや run-periodic-tasks スクリプトのパスを設定します。「新規」ボタンをクリックしてスケジュールタスクの実行内容を設定してください。

create_task_operation.png
項目名 解説 設定例
操作 スケジュールタスクの開始時に実行する操作を設定します。 プログラムの開始
プログラム/スクリプト Perl インタープリタのパスおよびファイル名を指定します。 C:\strawberry\perl\bin\perl.exe
引数の追加 アプリケーションディレクトリから run-periodic-tasks スクリプトまでの相対パスを指定します。 tools\run-periodic-tasks
開始 アプリケーションディレクトリまでの絶対パスを指定します。 C:\inetpub\app\mt

run-periodic-tasks スクリプトはアプリケーションディレクトリに移動してから実行する必要があります。「引数の追加」および「開始」の設定を忘れずにおこなってください。

「条件」タブ

トリガーに加え、タスクを実行する条件を設定します。設定例ではデフォルトのまま変更していません。お使いの環境に合わせて設定してください。

create_task_condition.png
項目名 解説 設定例
「電源」など トリガーに加え、タスクを実行する条件を設定します。 デフォルトのまま変更なし

「設定」タブ

スケジュールタスクの停止や多重実行に関する設定です。設定例では、多重実行を可能にするため、デフォルトの「新しいインスタンスを開始しない」から「新しいインスタンスを並列で実行」に変更しています。お使いの環境に合わせて設定してください。

create_task_setting.png
項目名 解説 設定例
タスクが既に実行中の場合に適用される規則 以前のスケジュールタスクがまだ実行中の状況での、現在のスケジュールタスクの扱いを設定します。サーバーへの負荷が高い場合には「既存インスタンスの停止」などの設定に変更してください。 新しいインスタンスを並列で実行

ログフィードの取得時に実行

通常、ログフィードを取得した際に、スケジュールタスクを実行します。ログフィードを取得してもスケジュールタスクを実行しないようにするには、環境設定ファイル mt-config.cgi に次の内容を追記してください。

ActivityFeedsRunTasks 0

XML-RPC API で拡張された mt.runPeriodicTasks の利用

Movable Type 3.3 で拡張されたメソッドを利用することで、XML-RPC API 経由でスケジュールタスクを実行できます。