示例#1
0
    /// <inheritdoc/>
    public async Task <IStreamProcessorState> AddFailingPartitionFor(
        IStreamProcessorId streamProcessorId,
        StreamProcessorState oldState,
        StreamPosition failedPosition,
        PartitionId partition,
        DateTimeOffset retryTime,
        string reason,
        CancellationToken cancellationToken)
    {
        var failingPartition  = new FailingPartitionState(failedPosition, retryTime, reason, 1, DateTimeOffset.UtcNow);
        var failingPartitions = new Dictionary <PartitionId, FailingPartitionState>(oldState.FailingPartitions)
        {
            [partition] = failingPartition
        };
        var newState = new StreamProcessorState(failedPosition + 1, failingPartitions, oldState.LastSuccessfullyProcessed);

        await PersistNewState(streamProcessorId, newState, cancellationToken).ConfigureAwait(false);

        return(newState);
    }
 /// <summary>
 /// Converts the <see cref="FailingPartitionState" /> to the runtime representation of <see cref="runtime.FailingPartitionState" />.
 /// </summary>
 /// <param name="state">The <see cref="FailingPartitionState" />.</param>
 /// <returns>The converted <see cref="runtime.FailingPartitionState" />.</returns>
 public static runtime.FailingPartitionState ToRuntimeRepresentation(this FailingPartitionState state) =>
示例#3
0
 /// <summary>
 /// Converts the <see cref="FailingPartitionState" /> to the runtime representation of <see cref="runtime.FailingPartitionState" />.
 /// </summary>
 /// <param name="state">The <see cref="FailingPartitionState" />.</param>
 /// <returns>The converted <see cref="runtime.FailingPartitionState" />.</returns>
 public static runtime.FailingPartitionState ToRuntimeRepresentation(this FailingPartitionState state) =>
 new runtime.FailingPartitionState(state.Position, state.RetryTime, state.Reason, state.ProcessingAttempts, state.LastFailed);