예제 #1
0
        /// <summary>
        /// Cancels a message that was scheduled.
        /// </summary>
        /// <param name="sequenceNumber">The <see cref="ServiceBusReceivedMessage.SequenceNumber"/> of the message to be cancelled.</param>
        /// <param name="cancellationToken">An optional <see cref="CancellationToken"/> instance to signal the request to cancel the operation.</param>
        public virtual async Task CancelScheduledMessageAsync(
            long sequenceNumber,
            CancellationToken cancellationToken = default)
        {
            Argument.AssertNotClosed(IsDisposed, nameof(ServiceBusSender));
            cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>();
            Logger.CancelScheduledMessageStart(Identifier, sequenceNumber);
            using DiagnosticScope scope = _scopeFactory.CreateScope(
                      DiagnosticProperty.CancelActivityName,
                      DiagnosticProperty.ClientKind);

            scope.AddAttribute(DiagnosticProperty.SequenceNumbersAttribute, sequenceNumber);
            scope.Start();
            try
            {
                await _innerSender.CancelScheduledMessageAsync(sequenceNumber, cancellationToken).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                Logger.CancelScheduledMessageException(Identifier, ex.ToString());
                throw;
            }

            cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>();
            Logger.CancelScheduledMessageComplete(Identifier);
        }
예제 #2
0
        /// <summary>
        /// Cancels a message that was scheduled.
        /// </summary>
        /// <param name="sequenceNumber">The <see cref="ServiceBusReceivedMessage.SequenceNumber"/> of the message to be cancelled.</param>
        /// <param name="cancellationToken">An optional <see cref="CancellationToken"/> instance to signal the request to cancel the operation.</param>
        public virtual async Task CancelScheduledMessageAsync(
            long sequenceNumber,
            CancellationToken cancellationToken = default)
        {
            Argument.AssertNotClosed(IsDisposed, nameof(ServiceBusSender));
            cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>();
            ServiceBusEventSource.Log.CancelScheduledMessageStart(Identifier, sequenceNumber);

            try
            {
                await _innerSender.CancelScheduledMessageAsync(sequenceNumber, cancellationToken).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                ServiceBusEventSource.Log.CancelScheduledMessageException(Identifier, ex);
                throw;
            }

            cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>();
            ServiceBusEventSource.Log.CancelScheduledMessageComplete(Identifier);
        }
 /// <summary>
 /// Cancels a message that was scheduled.
 /// </summary>
 /// <param name="sequenceNumber">The <see cref="ServiceBusReceivedMessage.SequenceNumber"/> of the message to be cancelled.</param>
 /// <param name="cancellationToken"></param>
 public virtual async Task CancelScheduledMessageAsync(long sequenceNumber, CancellationToken cancellationToken = default)
 {
     //this.ThrowIfClosed();
     await _innerSender.CancelScheduledMessageAsync(sequenceNumber, cancellationToken).ConfigureAwait(false);
 }