Пример #1
0
        public async Task Activate(HandlerGraph handlers, CapabilityGraph capabilities, JasperRuntime runtime, OutgoingChannels channels)
        {
            var capabilityCompilation = capabilities.Compile(handlers, _serialization, channels, runtime, _transports, _lookups);

            var transports = _transports.Where(x => x.State == TransportState.Enabled).ToArray();

            if (!_settings.DisableAllTransports)
            {
                await _settings.ApplyLookups(_lookups);



                channels.StartTransports(_pipeline, _settings, transports);

                _delayedJobs.Start(_pipeline, channels);

                var local = new TransportNode(channels, _settings.MachineName);

                await _nodes.Register(local);
            }

            runtime.Capabilities = await capabilityCompilation;
            if (runtime.Capabilities.Errors.Any() && _settings.ThrowOnValidationErrors)
            {
                throw new InvalidSubscriptionException(runtime.Capabilities.Errors);
            }
        }
Пример #2
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            try
            {
                var local = new ServiceNode(_settings)
                {
                    HttpEndpoints = _runtime.HttpAddresses?.Select(x => x.ToUri().ToMachineUri()).Distinct()
                                    .ToArray()
                };

                _runtime.Node = local;

                await _nodes.Register(local);
            }
            catch (Exception e)
            {
                _logger
                .LogException(e, message: "Failure when trying to register the node with " + _nodes);
            }
        }