コード例 #1
0
ファイル: Worker.cs プロジェクト: Banyc/MapReduce
        public Worker(
            WorkerSettings settings,
            RpcClientFactory rpcClientFactory,
            IMapping <TKey, TValueIn> mappingPhase,
            IReducing <TKey, TValueIn, TValueOut> reducingPhase,
            IPartitioning <TKey, TValueIn> partitioningPhase)
        {
            _settings          = settings;
            _mappingPhase      = mappingPhase;
            _reducingPhase     = reducingPhase;
            _partitioningPhase = partitioningPhase;
            _workerInfoDto     = new()
            {
                WorkerUuid = settings.WorkerUuid
            };
            _channel         = rpcClientFactory.CreateRpcChannel();
            _heartBeatTicker = new()
            {
                Interval = TimeSpan.FromSeconds(4).TotalMilliseconds
            };
            StartHeartbeat();
        }

        public void Dispose()
        {
            _heartBeatTicker.Dispose();
            _channel.Dispose();
        }
コード例 #2
0
 public void Dispose()
 {
     _cts?.Cancel();
     _cts?.Dispose();
     _stream?.Dispose();
     channel?.Dispose();
 }
コード例 #3
0
 public void Dispose()
 {
     if (channel != null)
     {
         channel.Dispose();
     }
 }
        public async ValueTask DisposeAsync()
        {
            channelReconnectTimer?.DisposeAsync().ConfigureAwait(false);
            channelReconnectTimer = null;

            if (m_DuplexStream != null)
            {
                try
                {
                    await m_DuplexStream.RequestStream.CompleteAsync().ConfigureAwait(false);
                }
                catch (Exception e)
                {
                    //Completeの例外発生はすでにComplete不可能な状態であることを示しているので、そのままDisposeへ進む
                    log.Trace($"{nameof(m_DuplexStream)} Complete Exception, {e}");
                }
                finally
                {
                    m_DuplexStream.Dispose();
                    m_DuplexStream = null;
                }
            }

            m_Channel?.Dispose();
            m_Channel = null;
        }
コード例 #5
0
 public void Dispose()
 {
     if (channel != null)
     {
         channel.Dispose();
     }
     GC.SuppressFinalize(this);
 }
コード例 #6
0
#pragma warning restore CS4014

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _heartbeatClient.StreamHeartbeats(new Empty(),
                                              cancellationToken: new CancellationToken(true));

            _channel?.Dispose();
            return(Task.CompletedTask);
        }
コード例 #7
0
ファイル: Class1.cs プロジェクト: ikihiki/TodoTree
        public async ValueTask DisposeAsync()
        {
            await notifyClient.DisposeAsync();

            await channel.ShutdownAsync();

            channel.Dispose();
        }
コード例 #8
0
ファイル: Cache.cs プロジェクト: Morgfrimen/myvo
 internal static void CloseChannel()
 {
     try
     {
         ChannelServer.Dispose();
     }
     catch { } //TODO:!!!!!!!!
 }
コード例 #9
0
 private void Dispose(bool disposing)
 {
     if (!_disposed && disposing)
     {
         _grpcChannel?.Dispose();
         _disposed = true;
     }
 }
コード例 #10
0
        public override async Task TeardownAsync(WorkloadContext context)
        {
            await client.DisposeAsync();

            await channel.ShutdownAsync();

            channel.Dispose();
        }
コード例 #11
0
 public void Dispose()
 {
     if (Disposed)
     {
         return;
     }
     _channel.Dispose();
     Disposed = true;
 }
コード例 #12
0
        public void Dispose()
        {
            if (_disposed)
            {
                return;
            }
            _disposed = true;

            _channel.Dispose();
        }
コード例 #13
0
        public void Dispose()
        {
            _holdingLineRequest?.Dispose();
            _channel?.ShutdownAsync().Wait(TimeSpan.FromSeconds(5));
            _channel?.Dispose();

            StartStreamCallback      = default;
            StopStreamCallback       = default;
            CloseApplicationCallback = default;
        }
コード例 #14
0
 /// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
 public void Dispose()
 {
     if (!disposing)
     {
         disposing = true;
         tickTimer.Dispose();
         //reconnector.Dispose();
         serverCallbackCancel?.Cancel();
         channel.Dispose();
     }
 }
コード例 #15
0
        public void ShutDown()
        {
            _logger.LogInformation("Shutting down the Grpc channel...");

            // as the channel was created on app start, we need to
            // dispose it properly when the connection is closed
            if (_channel != null)
            {
                _channel.Dispose();
                _channel = null;
            }
        }
コード例 #16
0
        public void Dispose()
        {
            if (_messageTask != null && !_messageTask.IsCompleted)
            {
                _messageTask.Dispose();
            }

            if (_grpcChannel != null)
            {
                _grpcChannel.Dispose();
            }
        }
コード例 #17
0
 protected virtual void Dispose(bool disposing)
 {
     if (!disposedValue)
     {
         if (disposing)
         {
             _channel.Dispose();
             _client.Dispose();
         }
         disposedValue = true;
     }
 }
コード例 #18
0
 public void StopReceiving()
 {
     try
     {
         channel.Dispose();
         GrpcEnvironment.ShutdownChannelsAsync();
     }
     catch (Exception e)
     {
         OnError?.Invoke(this, $"Error closing  gRPC connection to Server: {e}");
     }
 }
コード例 #19
0
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposedValue)
            {
                if (disposing)
                {
                    _grpcChannel.Dispose();
                }

                _disposedValue = true;
            }
        }
コード例 #20
0
 public void Dispose()
 {
     try
     {
         _semaphoreSlim.Dispose();
         channel?.Dispose();
         stream?.Dispose();
     }
     catch (Exception e)
     {
         OnError?.Invoke(this, $"Error during dispose: {e}");
     }
 }
コード例 #21
0
ファイル: GrpgClientFactory.cs プロジェクト: kaiosales/BDTest
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            if (disposing)
            {
                _channel?.Dispose();
            }

            _disposed = true;
        }
コード例 #22
0
 public void Start(Func <int> portGenerator, IServiceProvider serviceProvider)
 {
     if (process != null)
     {
         if (process.HasExited)
         {
             channel.Dispose();
             spawn(portGenerator());
         }
     }
     else
     {
         spawn(portGenerator());
     }
 }
コード例 #23
0
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _channel.Dispose();
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }
コード例 #24
0
    public async Task After()
    {
        await _testServer1?.Host?.StopAsync();

        _testServer1?.Dispose();
        _grpcChannel1?.Dispose();
        TestServer1HttpClient = null;
        TestServer1GrpcClient = null;

        await _testServer2?.Host?.StopAsync();

        _testServer2?.Dispose();
        _grpcChannel2?.Dispose();
        TestServer2HttpClient = null;
        TestServer2GrpcClient = null;
    }
コード例 #25
0
        private void LeaveChat()
        {
            if (cts != null)
            {
                cts.Cancel();
            }
            if (channel != null)
            {
                channel.Dispose();
            }

            ChatTB.Clear();
            channel = null;
            client  = null;
            cts     = null;
        }
コード例 #26
0
        // We don't want this handler -- it's only used for JWT-auth, not NKeys
        //internal void HandleUserJWTEvent(object source, UserJWTEventArgs ev)
        //{
        //    // Unfortunately, we have to do sync over async :-(
        //    var task = ResolveUserJwt(source);
        //    var awaiter = task.ConfigureAwait(false).GetAwaiter();
        //    ev.JWT = awaiter.GetResult();
        //}

        internal void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                if (disposing)
                {
                    // TODO: dispose managed state (managed objects)
                    DisposeClientResources(disposing);

                    _grpcChannel?.Dispose();
                    _grpcChannel = null;
                }

                // TODO: free unmanaged resources (unmanaged objects) and override finalizer
                // TODO: set large fields to null
                IsDisposed = true;
            }
        }
コード例 #27
0
        /*/// <summary>
         * /// When connection is lost, tries to reconnect to the hub
         * /// </summary>
         * /// <param name="state">nothing</param>
         * private void ReConnect(object? state)
         * {
         *  reconnector.Change(Timeout.Infinite, Timeout.Infinite);
         *  LogEnvironment.LogDebugEvent("Trying to re-connect...",LogSeverity.Report);
         *  CleanUp();
         *  try
         *  {
         *      InitHubConnection();
         *      initialized = true;
         *      OnOperationalChanged(true);
         *  }
         *  catch (Exception ex)
         *  {
         *      LogEnvironment.LogEvent($"Reconnect changed: {ex.Message}", LogSeverity.Error);
         *      reconnector.Change(ReconnectPeriod, Timeout.Infinite);
         *  }
         * }*/

        /// <summary>
        /// Performs a clean-up from old objects
        /// </summary>
        private void CleanUp()
        {
            try
            {
                channel?.Dispose();
                serverCallbackCancel.Cancel();
                serverCallbackCancel.Dispose();
            }
            catch
            {
            }
            finally
            {
                channel = null;
                client  = null;
                serverCallbackCancel = null;
            }
        }
コード例 #28
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _timer?.Dispose();
                    _metricsUpdateChannel?.RequestStream.CompleteAsync().ConfigureAwait(false).GetAwaiter().GetResult();
                    _heatbeatChannel?.RequestStream.CompleteAsync().ConfigureAwait(false).GetAwaiter().GetResult();
                    _metricsUpdateChannel?.Dispose();
                    _heatbeatChannel?.Dispose();
                    _channel.ShutdownAsync().ConfigureAwait(false).GetAwaiter().GetResult();
                    _channel.Dispose();
                }

                disposedValue = true;
            }
        }
コード例 #29
0
ファイル: Program.cs プロジェクト: 18975548819/GRPC_Pro
        public static void Main(string[] args)
        {
            //1.建立连接
            GrpcChannel grpcChannelClient = GrpcChannel.ForAddress("https://localhost:5001");
            //2.创建客户端
            GreeterClient greeterClient = new Greeter.GreeterClient(grpcChannelClient);
            //开始调用
            HelloReply helloReply = greeterClient.SayHello(new HelloRequest {
                Name = "qqqqqqqqqqqqqq"
            });

            //4.打印返回
            Console.WriteLine($"打印返回值为:{helloReply.Message}");
            //5.释放连接
            grpcChannelClient.Dispose();

            Console.ReadLine();
            //CreateHostBuilder(args).Build().Run();
        }
コード例 #30
0
        private void InitializeSensorsClient(string sensorsUrl, X509Certificate2 clientCertificate)
        {
            if (_channel != null)
            {
                _channel.ShutdownAsync();
                _channel.Dispose();
                _channel = null;
            }

            var handler = CreateHandler(sensorsUrl, clientCertificate);

            _channel = GrpcChannel.ForAddress(sensorsUrl, new GrpcChannelOptions()
            {
                HttpHandler           = handler,
                MaxReceiveMessageSize = 40 * 1024 * 1024,
                MaxSendMessageSize    = 40 * 1024 * 1024,
            });

            _sensorsClient = new Sensors.SensorsClient(_channel);
        }