MT::TaskMgr->add_task($task);
MT::TaskMgr->run_tasks;
MT::TaskMgrは、複数のタスク(MT::Taskオブジェクトとして個々に宣言されたもの)を実行するためのシンプルなフレームワークを定義します。各タスクは、定義された頻度で実行されます。失敗したタスクは、ログにその旨が書き込まれます。
Movable Typeは、強力なパブリッシング・プラットフォームですが、オフラインで実行可能なシステムがあるとその利便性がより増します。残念ながら多くのMovable Typeユーザーは、cronや、一部のサーバーが提供するそれに類似した機能を使って、こういったタスクをスケジュール化する機会に恵まれていません。ここで紹介するタスク・フレームワークは、すべてのユーザーに便宜を図るため、タスク・サブシステムが呼び出されるたびに実行されるタスクを、Movable Typeやサード・パーティー製のプラグインで登録できます。タスクの登録には、いくつかの方法があります。
cronが使えるユーザーは、Movable Typeに付属するtools/run-periodic-tasksスクリプトを使うことができます。このスクリプトは、スケジュール投稿の公開のためのタスクだけでなく、利用可能なすべてのタスクをタスク・サブシステムから実行できるように変更されています。
Movable Typeが出力するログ・フィードを使って、タスクを実行できます。Movable Typeは、まずタスク・サブシステムを呼び出し、次にフィードを返します。この結果、cronサービスにアクセスしなくてもスケジュール・タスクが実行できます。ただし、この方法は、何らかのクライアントによるフィードの呼び出しに依存します。フィードへのアクセスがなければ、タスクも実行されません。オンラインのフィード読み込みサービスを使うと、24時間×7日のタスク・サービスを実現し、登録されたタスクをスムーズに実行し続けることができます。
迷惑コメント/トラックバックのレコードの書き出しなどの一部のタスクは、条件つきで実行できます。迷惑コメント/トラックバック・レコードの書き出しは、Movable Typeの定義済みタスクで、他のタスクが実行されるとき、および新しいコメント/トラックバックが迷惑コメント/トラックバックと判定されたときに実行されます。
タスクは、Movable Typeのパフォーマンスとユーザーの使用感を最大限まで向上させるのに効果的です。たとえば、リモート・サーバーからデータを取得したり同期させたりする必要のあるプラグインでは、登録タスクを使って定期的に更新されているキャッシュから処理を行うという方法ができます。