RabbitMq как ограничить количество обработки очереди в день?

Только начал изучать RabbitMq, и мне нужно, ограничить количество выполнений в день до 200 как это можно сделать?

У меня есть определённое событие, которые вызывается при обработке очереди, мне нужно если кол-во обработанных сообщений уже больше 200 за день, то не вызвать это событие пока не наступит другой день.

public class RabbitMqConsumer : IRabbitMqConsumer
{
    private readonly IConnection _connection;
    private readonly IModel _channel;
    private readonly string _queueName;

    public RabbitMqConsumer(string uri, string queueName)
    {
        if (string.IsNullOrWhiteSpace(uri))
            throw new ArgumentNullException(nameof(uri));

        if (string.IsNullOrWhiteSpace(queueName))
            throw new ArgumentNullException(nameof(queueName));

        _queueName = queueName;

        IConnectionFactory connectionFactory = new ConnectionFactory
        {
            Uri = new Uri(uri)
        };

        _connection = connectionFactory.CreateConnection();
        
        _channel = _connection.CreateModel();

        _channel.QueueDeclare(_queueName, exclusive: false, autoDelete: false);
    }

    public event ProducerEventHandler? Producer;

    public void Start()
    {
        var consumer = new EventingBasicConsumer(_channel);

        consumer.Received += (sender, args) =>
        {
            var json = Encoding.UTF8.GetString(args.Body.ToArray());

            var request = JsonConvert.DeserializeObject<IndexApiRequest>(json);

            Console.WriteLine(request.Url);

            Producer?.Invoke(request);
        };

        _channel.BasicConsume(_queueName, true, consumer);
    }

    public void Dispose()
    {
        _channel.Dispose();
        _connection.Dispose();

        _channel.Close();
        _connection.Close();
    }
}

Ответы (0 шт):