package MyPlugin;
MT->add_task(new MT::Task({
name => "My Task",
key => "Task001",
frequency => 360, # at most, once per hour
code => \&runner
}));
MT::Taskオブジェクトは、MTが実行可能なタスクを定義するために用います。基本オブジェクトでは、すべてのタスクの共通の特性と、呼び出しのためのメソッドを定義しています。通常、プラグインはMT::Taskオブジェクトを生成し、MTクラスのadd_taskメソッドに渡します。
MT->add_task(new MT::Task({
# arguments; see listing of arguments below
}));
MT::Taskオブジェクトの生成時に指定可能なパラメーターは次のとおりです。
タスクを識別する一意な文字列を指定します。タスクのセッション・レコードを管理するために用いられます。タスクのセッション・レコードは、最後にタスクが実行された時間を記録するものです。セッション・レコードは、kindカラムの値が"PT"(periodic taskの略)に設定されたレコードとして、mt_sessionテーブルに保存されます。
タスク名です。これはオプションですが、タスクが失敗したときのエラー・ログ・レコードを記録する際に用いられるものです。
frequency(頻度)には、時間を秒数で指定します。どのような間隔でタスクを実行するかを定義するものです。ただし、ここで指定した頻度でタスクが実行される保証はありません。指定した期間内に2回以上実行されることがないことを保証するだけです。
MT::TaskMgrがそのタスクを呼び出すときに実行されるコードを、コード・リファレンスとして指定します。ここで指定したコードには、パラメーターとしてMT::Taskインスタンスが渡されます。