初めて Spring タスク エグゼキュータ システムを使用していますが、うまく動作しません...
これについてはすでにSOに関するさまざまな投稿を読みましたが、タスクが実行されていることを示す兆候はありません。まず、サービス Bean で @Scheduled アノテーションを試してみましたが、AOP プロキシで問題が発生したことを読んだ後、そのままの XML 構成を使用しています。
<task:executor id="executorWithPoolSizeRange"
pool-size="5-25"
queue-capacity="100" />
<task:scheduler id="taskScheduler" pool-size="2" />
<task:scheduled-tasks>
<task:scheduled ref="fileWriter" method="test" fixed-rate="5000" />
</task:scheduled-tasks>
fileWriter Bean は通常の Spring Bean であり、テスト メソッドは次のようになります。
public void test (){
System.err.println("run in job");
}
DEBUG ロギング設定で実行すると、次のことがわかります。
- Bean がロードされ、初期化されます。
- 「メソッド」属性の名前を間違えると、例外がスローされるため、タスク定義は少なくとも解析されます。
- デバッグ ステートメントには、タスクのアクティブ化を示すものは何もありません。
- テスト メソッドのブレークポイントがトリガーされることはありません。
アプリまたはスプリング ユニット テストの実行中に 5 秒ごとに、 test() メソッドからのメッセージがコンソールに出力されることを期待しています。私は Spring 3.0.6 を使用しており、Mac 10.6 Java 6 上の Eclipse 3.7 で Jetty を介して実行されるアプリをテストしています。使用する他のすべての Spring 機能 (データベース、セキュリティ、MVC は正常に動作します)。どんな提案にも本当に感謝します!