@@ -114,35 +114,35 @@ private AbstractServiceDiscovery(ApplicationModel applicationModel, String servi
114
114
}
115
115
116
116
private void removeExpiredMetadataInfo (int metadataInfoCacheSize , int metadataInfoCacheExpireTime ) {
117
- Long time = null ;
117
+ Long nextTime = null ;
118
118
if (metadataInfos .size () > metadataInfoCacheSize ) {
119
119
List <MetadataInfoStat > values = new ArrayList <>(metadataInfos .values ());
120
120
values .sort (Comparator .comparingLong (MetadataInfoStat ::getUpdateTime ));
121
121
for (MetadataInfoStat v : values ) {
122
- time = System .currentTimeMillis () - v .getUpdateTime ();
122
+ long time = System .currentTimeMillis () - v .getUpdateTime ();
123
123
if (time > metadataInfoCacheExpireTime ) {
124
124
metadataInfos .remove (v .metadataInfo .getRevision (), v );
125
- time = null ;
126
125
} else {
126
+ nextTime = metadataInfoCacheExpireTime - time ;
127
127
break ;
128
128
}
129
129
}
130
130
}
131
131
startRefreshCache (
132
- time == null ? metadataInfoCacheExpireTime / 2 : time ,
132
+ nextTime == null ? metadataInfoCacheExpireTime / 2 : nextTime ,
133
133
metadataInfoCacheSize ,
134
134
metadataInfoCacheExpireTime );
135
135
}
136
136
137
- private void startRefreshCache (long time , int metadataInfoCacheSize , int metadataInfoCacheExpireTime ) {
137
+ private void startRefreshCache (long nextTime , int metadataInfoCacheSize , int metadataInfoCacheExpireTime ) {
138
138
this .refreshCacheFuture = applicationModel
139
139
.getFrameworkModel ()
140
140
.getBeanFactory ()
141
141
.getBean (FrameworkExecutorRepository .class )
142
142
.getSharedScheduledExecutor ()
143
143
.schedule (
144
144
() -> removeExpiredMetadataInfo (metadataInfoCacheSize , metadataInfoCacheExpireTime ),
145
- time ,
145
+ nextTime ,
146
146
TimeUnit .MILLISECONDS );
147
147
}
148
148
0 commit comments