Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Django Celery nhận số lượng nhiệm vụ

Đây là cách bạn có thể nhận được số lượng thư trong một hàng đợi bằng cách sử dụng cần tây không phải là nhà môi giới.

Bằng cách sử dụng connection_or_acquire , bạn có thể giảm thiểu số lượng kết nối mở với nhà môi giới của mình bằng cách sử dụng tổng hợp kết nối nội bộ của cần tây.

celery = Celery(app)

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

Bạn cũng có thể mở rộng Celery để cung cấp chức năng này:

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. Redis không chọn các sự kiện phát sóng trong Laravel 5.1

  2. Tạo tập hợp mới từ một phạm vi của Tập hợp đã sắp xếp trong Redis

  3. nginx uwsgi websockets 502 Bad Gateway ngược dòng kết nối bị đóng sớm trong khi đọc tiêu đề phản hồi từ ngược dòng

  4. Redistogo và Sidekiq trên Heroku:Không thể kết nối

  5. Di chuyển dữ liệu với Redis