[Seasar-user:21572] Re: s2chronosのタスク起動について

Funa [E-MAIL ADDRESS DELETED]
2013年 3月 20日 (水) 15:28:41 JST


竹添様

ご返信ありがとうございます。
おっしゃる通り、Taskのパッケージをapp.Taskにし、
「@NonDelayTrigger」に一度変え、実行し、再び「@CronTrigger」に変更し、
実行すると動くようになりました。(内部的なパスがあるんでしょうか??)

もう1点気になる点があるのですが。下記INFOレベルで出力したログですが、
[chronos-pool-3-thread-XX]と出力されます。
このソースでは、このようにDIしたService層を連携させてます。

◆タスククラス
@Resource
protected UserMstService userMstService;
 
public void doExecute() {
   List<UserMst> list = userMstService.findAll();
   log.info("doExecute呼出し:"+list.size());
}

このServiceクラスを指定しないと、毎分
[chronos-pool-3-thread-XX]のXX部がインクリメントされます。
下記、ログでもインクリメントされたりされなかったりですが、
されていない場合は、プールされたスレッドを使いまわしていると
推測できます。

Windowsで確認しているのですが、タスクマネージャーでプロセスが
溜まり続けている事は無いのですが、生成されたスレッドは必ず
破棄されているのでしょうか?

ユーザガイドページではこのような記述があるのですが、destroy()メソッドを実装しても
入ってこないので気になりました。

◆ユーザガイドページ
「破棄処理の場合はdestoryメソッドを実装します.              破棄処理はスケジューラによってタスクが破棄されるときに一度だけ呼び出されます.ここでいう破棄とはVMのGCとは異なります.ただし,isReScheduleTaskがtrueを返すタスクの場合は破棄処理は実行されません.」

◆ログ
2013-3-20 14:33:33 [INFO] Running on [ENV]ct, [DEPLOY MODE]Hot Deploy
2013-03-20 14:33:33,475 [chronos-pool-3-thread-1] INFO  app.task.SampleTask - initialize呼出し
2013/03/20 14:33:34 org.apache.catalina.startup.HostConfig deployDirectory
情報: Webアプリケーションディレクトリ a を配備します
2013/03/20 14:33:34 org.apache.catalina.startup.HostConfig deployDirectory
情報: Webアプリケーションディレクトリ test を配備します
2013/03/20 14:33:34 org.apache.coyote.http11.Http11Protocol start
情報: Coyote HTTP/1.1を http-6833 で起動します
2013/03/20 14:33:34 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2013/03/20 14:33:34 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/20  config=null
2013/03/20 14:33:34 org.apache.catalina.startup.Catalina start
情報: Server startup in 3742 ms
2013-03-20 14:35:03,497 [chronos-pool-3-thread-2] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:35:03,718 [chronos-pool-3-thread-2] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:35:03,728 [chronos-pool-3-thread-2] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:35:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:36:03,499 [chronos-pool-3-thread-2] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:36:03,509 [chronos-pool-3-thread-2] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:36:03,509 [chronos-pool-3-thread-2] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:36:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:37:03,541 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:37:03,541 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:37:03,541 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:37:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:38:03,533 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:38:03,533 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:38:03,533 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:38:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:39:03,536 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:39:03,546 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:39:03,546 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:39:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:40:03,545 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:40:03,545 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:40:03,545 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:40:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:41:03,547 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:41:03,547 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:41:03,547 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:41:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:42:03,549 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:42:03,549 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:42:03,549 [chronos-pool-3-thread-3] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:42:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:43:03,564 [chronos-pool-3-thread-4] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:43:03,580 [chronos-pool-3-thread-4] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:43:03,580 [chronos-pool-3-thread-4] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:43:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:44:03,596 [chronos-pool-3-thread-5] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:44:03,596 [chronos-pool-3-thread-6] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:44:03,596 [chronos-pool-3-thread-6] INFO  app.task.SampleTask - end呼出し
2013-3-20 14:44:33 [WARN] HOT deploy対象クラス(app.task.SampleTask)が非対象クラスから参照されて通常のクラスローダにロードされています。
2013-03-20 14:45:03,605 [chronos-pool-3-thread-6] INFO  app.task.SampleTask - start呼出し
2013-03-20 14:45:03,615 [chronos-pool-3-thread-6] INFO  app.task.SampleTask - doExecute呼出し:3
2013-03-20 14:45:03,615 [chronos-pool-3-thread-6] INFO  app.task.SampleTask - end呼出し


(2013/03/20 14:48), Naoki Takezoe wrote:
> 竹添です。
>
> タスクをjp.test.s2chronos.taskパッケージに作成されていますが
> ルートパッケージがappになっているのでタスククラスの検出に
> 失敗しているのではないかと思います。
>
> S2Chronosはルートパッケージ.taskパッケージからクラス名の
> 末尾が~Taskのクラスをタスクとして検出するはずなので、
> タスクをapp.taskパッケージに作成するか、
> convention.diconに「jp.test.s2chronos」をルートパッケージとして
> 追加してみてはいかがでしょう。
>


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