2

私は現在 Qrtz を使用していますが、親ジョブが既に実行された後に子ジョブが自動的に起動されないことが何度もありました。QRTZ ライブラリの log4j によって生成されたログを調査しました。テーブル「qrtz_simple_triggers」からトリガーが見つからない問題があることがわかりました。この問題は、マザー ジョブがテーブル "qrtz_triggers" にトリガーを挿入し、データを "qrtz_simple_triggers" にすぐに挿入する必要があるために発生しました。しかし、私の場合、単純なトリガーが完全にテーブルに挿入されている間、約 1 秒の遅延期間があり、同じ瞬間に、テーブル "qrtz_triggers" のトリガー ステータスを "WAITING" から UPDATE するスレッド プーリングからの操作がありました。取得する" マザージョブが終了していない間、「qrtz_simple_triggers」へのトリガー挿入。そのため、メイン スレッドはテーブル内の単純なトリガーを見つけることができず、動作を停止しました。(その子役用)

私のポイントは、このようなケースを防ぐ方法ですか?2 つの挿入ステートメントは同じトランザクションではないと思います。私は現在それについて調査しており、これらのステートメントを同じトランザクションにマージするソリューションを想定しています。もっとアイデアを持ってきてくれませんか?

前もって感謝します、停止:)

4

1 に答える 1

1

春を使用してトランザクションを管理している場合は、投稿を確認してください

設定

org.quartz.jobStore.class = org.springframework.scheduling.quartz.LocalDataSourceJobStore
于 2012-05-19T07:25:32.397 に答える