スケジュールタスク
プラグインでスケジュールタスクを設定する
MTディレクトリ配下//tools/run-periodic-tasksを実行することでタスクを実行する
時間を指定しておけば、"run-periodic-tasks"を何度実行してもプラグインで設定した時間の間隔で動作する
2分単位にログ出力するサンプル
構成
$MT_DIR/
|__ plugins/
| |__ TaskTest01/
| |__ config.yaml
| |__ lib/
| | |__ TaskTest01
| | |__ L10N
| | | |__ ja.pm
| | | |__ en_us.pm
| | |__ Tasks.pm
ソース
config.yaml
# プラグイン情報
id: TaskTest01
key: TaskTest01
name: TaskTest01
version: 1.0
description: <__trans phrase="_PLUGIN_DESCRIPTION">
author_name: <__trans phrase="_PLUGIN_AUTHOR">
author_link: http://www.example.com/about/
doc_link: http://www.example.com/docs/
# 言語対応
l10n_class: TaskTest01::L10N
# タスク
tasks:
MyCustomTask01:
label: タスクテスト1
frequency: 120
code: $TaskTest01::TaskTest01::Tasks::do_task
lib/TaskTest01/Tasks.pm
package TaskTest01::Tasks;
use strict;
sub do_task {
doLog("run scheduled tasks");
}
sub doLog {
my ($msg, $class) = @_;
return unless defined($msg);
require MT::Log;
my $log = new MT::Log;
$log->message($msg);
$log->level(MT::Log::DEBUG());
$log->class($class) if $class;
$log->save or die $log->errstr;
}
1;
確認
Linuxで"run-periodic-tasks"を実行
# cd /home/httpd/cgi-bin/mt
# sudo -u apache ./tools/run-periodic-tasks
#
ログを確認
2分後にもう一度実行
# cd /home/httpd/cgi-bin/mt
# sudo -u apache ./tools/run-periodic-tasks
# sudo -u apache ./tools/run-periodic-tasks
#
ログを確認
最終更新:2012年03月11日 11:54