public Task Set(IWorkContext context, string path, NodeRegistrationModel nodeRegistrationModel)
        {
            nodeRegistrationModel.Verify(nameof(nodeRegistrationModel)).IsNotNull();
            nodeRegistrationModel.NodeId !.Verify(nameof(nodeRegistrationModel.NodeId)).IsNotEmpty();

            _data.AddOrUpdate(nodeRegistrationModel.NodeId !, nodeRegistrationModel, (k, v) => nodeRegistrationModel);
            return(Task.CompletedTask);
        }
예제 #2
0
        public Task Set(IWorkContext context, string path, NodeRegistrationModel nodeRegistrationModel)
        {
            _createContainer.Execute(context);

            string data = JsonConvert.SerializeObject(nodeRegistrationModel);

            return(_blobRepository.Set(context, path, data));
        }
예제 #3
0
        public static RouteRegistrationRequest ConvertTo(this NodeRegistrationModel subject)
        {
            subject.Verify(nameof(subject)).IsNotNull();

            return(new RouteRegistrationRequest {
                NodeId = subject.NodeId
            });
        }
        public async Task Set(IWorkContext context, NodeRegistrationModel nodeRegistrationModel)
        {
            context.Telemetry.Verbose(context, $"Set node registration {ActorKey.VectorKey}");

            await _registerStore.Set(context, ActorKey.VectorKey, nodeRegistrationModel);

            _cache.Set(nodeRegistrationModel);
        }
예제 #5
0
        public async Task <NodeRegistrationModel?> Get(IWorkContext context, string nodeId)
        {
            if (_routes.TryGetValue(nodeId, out CacheObject <NodeRegistrationModel> cacheModel))
            {
                if (cacheModel.TryGetValue(out NodeRegistrationModel model))
                {
                    return(model);
                }
            }

            RouteLookupResponse?lookup = await _nameServer.Lookup(context, new RouteLookupRequest { SearchNodeId = nodeId });

            if (lookup == null)
            {
                return(null);
            }

            NodeRegistrationModel lookupModel = lookup.ConvertTo();

            _routes[nodeId] = new CacheObject <NodeRegistrationModel>(_timeToLive).Set(lookupModel);

            return(lookupModel);
        }