[Seasar-user:21479] 【S2Chronos】複数のタスクからのCronTrigger登録について

Shinsuke Sekiguchi [E-MAIL ADDRESS DELETED]
2012年 9月 28日 (金) 12:36:45 JST


お世話になっております。
関口と申します。

現在、複数タスククラスの処理をS2Chronosにて
スケジューリング実行しようと考えています。
スケジュール情報は、プロパティファイルに定義しておき、
Initializse()メソッド内でCronTriggerに登録して
実行しようとしています。

全てのタスククラスでプロパティファイルから取り出した
スケジュール情報を登録すると全てのタスククラスが動作する
のですが、どれか1つでも登録しないと全ての
タスクが動作しなくなってしまいます。
以下に実装例を挙げさせて頂きますので、
何か実装方法に問題があるようでしたら
ご教示をお願いします。

■s2Chronosライブラリ
・s2chronos-core-1.0.0.jar
・s2chronos-extention-1.0.0.jar

■s2Chronos.properties(トリガー情報を定義する自作プロパティファイル)
#タスクA
TESTA=0 */1 * * * ?
# タスクB
TESTB=30 */1 * * * ?

★共に有効にしておくと正常動作するが、どちらかを
 コメント化すると全タスククラスが動作しなくなる。

■タスクA、B(TestA⇒TestB、TESTA⇒TESTBのみ差分)
@Task
public class TestATask {
  // トリガー
  private CCronTrigger trigger = new CCronTrigger();

  public void initialize() {
    // プロパティファイルからスケジュール情報取得
    String cronStr =
ResourceUtil.getProperties("s2Chronos.properties").getProperty("TESTA");
    if (cronStr != null) {
      // Chronosスケジューラにスケジュール登録
      this.trigger.setExpression(cronStr);
    } else {
      // ERRORログ出力
    }

  @NextTask("Test11")
  public void start() {
    // INFOログ出力
  }

  public void doTest11() {
    // INFOログ出力
  }
}


以上、宜しくお願いします。



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