public Task StopAsync()

in extension/WebJobs.Extensions.RabbitMQ/Trigger/RabbitMQListener.cs [143:163]


    public Task StopAsync(CancellationToken cancellationToken)
    {
        int previousState = Interlocked.CompareExchange(ref this.listenerState, ListenerStopping, ListenerStarted);

        if (previousState == ListenerStarted)
        {
            // TODO: Close RabbitMQ connection along with the channel.
            this.channel.BasicCancel(this.consumerTag);
            this.channel.Close();

            if (!this.drainModeManager.IsDrainModeEnabled)
            {
                this.listenerCancellationTokenSource.Cancel();
            }

            this.listenerState = ListenerStopped;
            this.logger.LogDebug($"Stopped RabbitMQ trigger listener for {this.logDetails}.");
        }

        return Task.CompletedTask;
    }