[Seasar-user:16183] 【S2Chronos】CronTriggerを安全に停止する方法について

Satoru Ogura [E-MAIL ADDRESS DELETED]
2008年 10月 30日 (木) 11:41:31 JST


お世話になっております。
小椋と申します。

現在、CronTriggerを5分おきに実行しております。
システムのメンテナンス等で計画停止する場合に確実にタスクが
実行されていない状態で停止したいと思っております。

setEndTask(true)で次の実行を行わないようにしようとしましたが、
CCronTriggerにはsetEndTaskが実装されていないため、停止できません。
setEndTaskをオーバーライドして実装しても問題ないのでしょうか?
どのような方法が推奨される方法でしょうか?

以下、テストで使用したソースです。
タスククラス
@Task
public class TestTask {

    private TriggerChain trigger = new TriggerChain();

    public TaskTrigger getTrigger() {
        return trigger;
    }

    // 初期化
    public void initialize() {
        CCronTrigger cron = new CCronTrigger();
        cron.setExpression("0 */1 * * * ?");
        trigger.addTrigger(cron);
    }

    // タスク処理
    public void doExecute() throws Exception {
    }
}

タスクを停止しようとしているクラス
public class SchedulerServiceImpl implements SchedulerService {

    public TestTask testTask;

    public void end() throws Exception {
        testTask.getTrigger().setEndTask(true);
    }
}

以上、よろしくお願い致します。




Seasar-user メーリングリストの案内