コード例 #1
0
ファイル: Worker.cs プロジェクト: Banyc/MapReduce
        public void StartHeartbeat()
        {
            // heart beats
            var rpcClientHeartbeat = RpcClientFactory.CreateRpcClient(_channel);

            _heartBeatTicker.Elapsed += (object sender, ElapsedEventArgs e) => _ = SendHeartbeatAsync(rpcClientHeartbeat);
            _heartBeatTicker.Start();
        }
コード例 #2
0
ファイル: Worker.cs プロジェクト: Banyc/MapReduce
        public async Task RunAsync(CancellationToken cancelToken)
        {
            // worker tasks
            if (this.IsWorking)
            {
                return;
            }
            this.IsWorking = true;

            var rpcClientWorkTask = RpcClientFactory.CreateRpcClient(_channel);
            var workTask          = Task.Run(() => WorkLoopAsync(rpcClientWorkTask, cancelToken), cancelToken);

            try
            {
                await Task.WhenAll(workTask).ConfigureAwait(false);
            }
            finally
            {
                this.IsWorking = false;
            }
        }