- /**
- * Initializes all scheduled tasks.
- */
- private void initScheduledTasks() {
- if (clientConfig.shouldFetchRegistry()) {
- // registry cache refresh timer
- intregistryFetchIntervalSeconds = clientConfig.getRegistryFetchIntervalSeconds();
- intexpBackOffBound = clientConfig.getCacheRefreshExecutorExponentialBackOffBound();
- scheduler.schedule(
- new TimedSupervisorTask(
- "cacheRefresh",
- scheduler,
- cacheRefreshExecutor,
- registryFetchIntervalSeconds,
- TimeUnit.SECONDS,
- expBackOffBound,
- new CacheRefreshThread()
- ),
- registryFetchIntervalSeconds, TimeUnit.SECONDS);
- }
- if (clientConfig.shouldRegisterWithEureka()) {
- intrenewalIntervalInSecs = instanceInfo.getLeaseInfo().getRenewalIntervalInSecs();
- intexpBackOffBound = clientConfig.getHeartbeatExecutorExponentialBackOffBound();
- logger.info("Starting heartbeat executor: " + "renew interval is: " + renewalIntervalInSecs);
- // Heartbeat timer
- scheduler.schedule(
- new TimedSupervisorTask(
- "heartbeat",
- scheduler,
- heartbeatExecutor,
- renewalIntervalInSecs,
- TimeUnit.SECONDS,
- expBackOffBound,
- new HeartbeatThread()
- ),
- renewalIntervalInSecs, TimeUnit.SECONDS);
- // InstanceInfo replicator
- /**************************封装了定时任务**********************************/
- instanceInfoReplicator =new InstanceInfoReplicator(
- this,
- instanceInfo,
- clientConfig.getInstanceInfoReplicationIntervalSeconds(),
- 2);// burstSizestatusChangeListener =new ApplicationInfoManager.StatusChangeListener() {
- @Override
- public String getId() {
- return"statusChangeListener";
- }
- @Override
- public void notify(StatusChangeEvent statusChangeEvent) {
- if(InstanceStatus.DOWN == statusChangeEvent.getStatus() ||
- InstanceStatus.DOWN == statusChangeEvent.getPreviousStatus()) {
- // log at warn level if DOWN was involvedlogger.warn("Saw local status change event {}", statusChangeEvent);
- } else {
- logger.info("Saw local status change event {}", statusChangeEvent);
- }
- instanceInfoReplicator.onDemandUpdate();
- }
- };
- if (clientConfig.shouldOnDemandUpdateStatusChange()) {
- applicationInfoManager.registerStatusChangeListener(statusChangeListener);
- }
- //点击可以查看start方法
- instanceInfoReplicator.start(clientConfig.getInitialInstanceInfoReplicationIntervalSeconds());
- } else {
- logger.info("Not registering with Eureka server per configuration");
- }
- }
来源: http://www.bubuko.com/infodetail-1995260.html