Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Django Celery otrzymuje liczbę zadań

Oto, w jaki sposób możesz uzyskać liczbę wiadomości w kolejce za pomocą selera, który jest niezależny od brokera.

Używając connection_or_acquire , możesz zminimalizować liczbę otwartych połączeń z brokerem, korzystając z wewnętrznego puli połączeń selera.

celery = Celery(app)

with celery.connection_or_acquire() as conn:
    conn.default_channel.queue_declare(
        queue='my-queue', passive=True).message_count

Możesz również rozszerzyć program Celery, aby zapewnić tę funkcję:

from celery import Celery as _Celery


class Celery(_Celery)

    def get_message_count(self, queue):
        '''
        Raises: amqp.exceptions.NotFound: if queue does not exist
        '''
        with self.connection_or_acquire() as conn:
            return conn.default_channel.queue_declare(
                queue=queue, passive=True).message_count


celery = Celery(app)
num_messages = celery.get_message_count('my-queue')


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie można połączyć się z Redis o 127.0.0.1:6379:Połączenie odrzucone

  2. Jak zapisać i pobrać ciąg z akcentami w redis?

  3. Komunikat prasowy:ScaleGrid ogłasza usługę hostingową dla Redis™ na AWS

  4. Jak używać kluczy przestrzeni nazw na redis, aby uniknąć kolizji nazw?

  5. Klawisze sortowania Spring Redis