public CrdtValueDelegate(String name, Serializer serializer, CrdtProtocolConfig config, PrimitiveManagementService managementService) { this.clusterEventService = managementService.getEventService(); this.executorService = managementService.getExecutorService(); this.valueSerializer = serializer; this.timestampProvider = config.getTimestampProvider(); this.subject = String.format("atomix-crdt-value-%s", name); subscribeFuture = clusterEventService.subscribe(subject, SERIALIZER::decode, this::updateValue, executorService); broadcastFuture = executorService.scheduleAtFixedRate( this::broadcastValue, config.getGossipInterval().toMillis(), config.getGossipInterval().toMillis(), TimeUnit.MILLISECONDS); }
public CrdtValueDelegate(String name, Serializer serializer, CrdtProtocolConfig config, PrimitiveManagementService managementService) { this.clusterEventService = managementService.getEventService(); this.executorService = managementService.getExecutorService(); this.valueSerializer = serializer; this.timestampProvider = config.getTimestampProvider(); this.subject = String.format("atomix-crdt-value-%s", name); subscribeFuture = clusterEventService.subscribe(subject, SERIALIZER::decode, this::updateValue, executorService); broadcastFuture = executorService.scheduleAtFixedRate( this::broadcastValue, config.getGossipInterval().toMillis(), config.getGossipInterval().toMillis(), TimeUnit.MILLISECONDS); }