Exemple #1
0
        public async Task Execute(CancellationToken cancellationToken)
        {
            IGrpcConfig grpcConfig = _api.Config <IGrpcConfig>();

            if (grpcConfig.Enabled)
            {
                ILogger    logger     = _api.LogManager.GetClassLogger();
                GrpcServer grpcServer = new GrpcServer(_api.EthereumJsonSerializer, _api.LogManager);
                var        grpcRunner = new GrpcRunner(grpcServer, grpcConfig, _api.LogManager);
                await grpcRunner.Start(cancellationToken).ContinueWith(x =>
                {
                    if (x.IsFaulted && logger.IsError)
                    {
                        logger.Error("Error during GRPC runner start", x.Exception);
                    }
                });

                _api.GrpcServer = grpcServer;

                GrpcPublisher grpcPublisher = new GrpcPublisher(_api.GrpcServer);
                _api.Publishers.Add(grpcPublisher);

                _api.DisposeStack.Push(grpcPublisher);
                _api.DisposeStack.Push(Disposable.Create(() => grpcRunner.StopAsync())); // do not await
            }
        }
Exemple #2
0
 public GrpcLoggerFactory(GrpcPublisher publisher)
 {
     _publisher = publisher;
 }