タスクの手動登録

.NETだけやっておりましたが、Javaも触る機会ができましたので、その中での情報なども書いていくことにします。
今回の案件でJavaでタスクジョブのスケジューリングを管理する必要が出てきてしまい購入した「Seasar2徹底入門」に紹介されているS2Chronosが今回の案件に使えそうなので機能の確認を行いました。
サーバー起動時にタスクが登録され実行されることは確認できたのですが、使用者が手動でタスクの登録、停止などを行いたいと思い、kzk-yさんの記事 id:kzk-y:20090312を参考に試したのですが、(2008-09-08 s2chronos-core-1.0.0)では、コンパイルエラーになってしまいました。どうもタスク登録を行う時のAddTaskの仕様が変わったようです。

Actionの方はこんな感じに記述したら動作しました。

  public class SampleAction {

    public Scheduler scheduler;

    public String doClick() {
        // タスク登録
        scheduler.addTask(TestTask.class);
    }
  }

public 変数のschedulerはインジェクションされるので
元の記事の通り privateにして、setterメソッドを書いても同じです。

S2Chronosのセットアップにはgungnir_odinさんの以下の記事を参考にしました。
id:gungnir_odin:20100421:1271856739
ただし、

  • 必要なファイルをダウンロード
  • ビルドパスに追加

については
Maven2環境にて構築しましたのでpom.xml

    <dependency>
      <groupId>org.seasar.chronos</groupId>
      <artifactId>s2chronos-core</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.chronos</groupId>
      <artifactId>s2chronos-extension</artifactId>
      <version>1.0.0</version>
    </dependency>

を追加した後 mvn eclipse:eclipseをコマンドラインで実行し、必要なjarをダウンロードしました。

Seasar 2 徹底入門 SAStruts/S2JDBC 対応

Seasar 2 徹底入門 SAStruts/S2JDBC 対応