2016-11-28 14 views
0

20分ごとに実行するようにスケジュールされたメソッドがあります。 Springブートで@Scheduledアノテーションを使用しただけですが、実行時に遅延時間がかかるスケジューラが必要です。例えば。アプリケーションを停止することなく実行時のメソッド実行の遅延時間/頻度を変更できるようにするには、DB内の頻度を変更し、コードで変更する必要があります。変数fixeddelayを伴う@ scheduled annotation

@Scheduled(initialDelay=15*60*1000, fixedRate=20*60*1000) 
public void MyMethod() { 
    // Code to repeat after every 20 minutes 
    } 
} 

コード内の固定レートは、実行時に可変である必要があります。それを達成することは可能ですか?

答えて

0

プロパティファイルの固定レートを変更した後、またはスプリングクラウドの設定を変更した後にスプリングコンテキストをリフレッシュするとできますが、これはいくつかの問題を引き起こします。refresh()は、コンテキスト(現在シングルトンなど)それらを再作成すると、何らかのブートストラップが起こる可能性があります。

参考情報: Is spring application context reloading via ConfigurableApplicationContext refresh() considered bad-practice

関連する問題