cancle the previous ttl task when putting a new task

This commit is contained in:
lowzj
2016-11-01 13:28:30 +08:00
parent ab89d06586
commit 0605ce71a6

View File

@@ -57,7 +57,10 @@ public class TtlScheduler {
ScheduledFuture task = scheduler.scheduleAtFixedRate(new ConsulHeartbeatTask(
service.getId()), configuration.computeHearbeatInterval()
.toStandardDuration().getMillis());
serviceHeartbeats.put(service.getId(), task);
ScheduledFuture previousTask = serviceHeartbeats.put(service.getId(), task);
if (previousTask != null) {
previousTask.cancel(true);
}
}
public void remove(String serviceId) {