0

私の Wicket アプリケーションでは、テキスト リソースに StringResourceLoaders を使用しています。テキストのキーと値は、プロパティ ファイルとデータベースから読み込まれます。

テキスト リソースを格納および取得するためのサービス クラスを作成しました。ここには、テキスト リソースを 15 分ごとに更新するスケジュールされたタスクもあります。

このタスクを実行するときは、まずテキスト リソースを更新し、その後リソース キャッシュをクリアして、Wicket が更新されたテキストを使用できるようにします。

私の問題は、キャッシュがクリアされていないことです。これが私がそれをやろうとする方法です...

@Scheduled(fixedDelay=15*60*1000) // 15 minutes
private void taskUpdateTextResources() {
    updateTextResources();
    Application.get().getResourceSettings().getPropertiesFactory().clearCache();
}

これは明らかにリソースをクリアする正しい方法ではありませんが、どうすればよいでしょうか?

4

2 に答える 2

0

リソース キャッシュを定期的に無効にするために、ResourcePollFrequency を設定できます。

これをアプリケーションの init メソッドに追加すると、すべてのリソースが 15 分ごとに再ポーリングされます。

getResourceSettings().setResourcePollFrequency(Duration.minutes(15));
于 2013-05-31T09:49:55.403 に答える