public async Task StartAsync(CancellationToken cancellationToken) { await _innerListener.StartAsync(cancellationToken); await _heartbeatCommand.TryExecuteAsync(cancellationToken); _timer.Start(); }
public async Task <TaskSeriesCommandResult> ExecuteAsync(CancellationToken cancellationToken) { bool succeeded = await _innerCommand.TryExecuteAsync(cancellationToken).ConfigureAwait(false); Task wait = Task.Delay(_delayStrategy.GetNextDelay(succeeded), cancellationToken); return(new TaskSeriesCommandResult(wait)); }
public async Task <IDelayedException> TryExecuteAsync(IFunctionInstance instance, CancellationToken cancellationToken) { IDelayedException result; using (ITaskSeriesTimer timer = CreateHeartbeatTimer(_exceptionHandler)) { await _heartbeatCommand.TryExecuteAsync(cancellationToken); timer.Start(); result = await _innerExecutor.TryExecuteAsync(instance, cancellationToken); await timer.StopAsync(cancellationToken); } return(result); }