public void StartHeartbeat() { // heart beats var rpcClientHeartbeat = RpcClientFactory.CreateRpcClient(_channel); _heartBeatTicker.Elapsed += (object sender, ElapsedEventArgs e) => _ = SendHeartbeatAsync(rpcClientHeartbeat); _heartBeatTicker.Start(); }
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; } }