+ void start() {
+ loadSoneFollowingTimes();
+ }
+
+ private void loadSoneFollowingTimes() {
+ Map<String, Long> soneFollowingTimes = configurationLoader.loadSoneFollowingTimes();
+ lock.writeLock().lock();
+ try {
+ this.soneFollowingTimes.clear();
+ this.soneFollowingTimes.putAll(soneFollowingTimes);
+ } finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ void stop() {
+ saveSoneFollowingTimes();
+ }
+
+ private void saveSoneFollowingTimes() {
+ lock.readLock().lock();
+ try {
+ configurationLoader.saveSoneFollowingTimes(soneFollowingTimes);
+ } finally {
+ lock.readLock().unlock();
+ }
+ }
+