Ограничение выборки данных в django-celery, действующем как потребитель, из очереди rabbitmq, действующей как производитель
Я хочу получать 10 сообщений данных в каждый период периодической задачи django-celery из очереди rabbitmq, содержащей 100000 сообщений данных. все работает хорошо. но я не знаю, как я могу остановить получение данных, если 10 сообщений данных были получены в определенный период. вот мой task.py
@periodic_task(run_every=(crontab(minute='*/1')), name="task", ignore_result=True)
def task():
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='name')
def callback(ch, method, properties, body):
# do sth
channel.basic_qos(prefetch_count=10, global_qos=True)
channel.basic_consume(queue='name', on_message_callback=callback)
channel.start_consuming()
и вот мой производитель rabbitmq
connection = pika.BlockingConnection(
pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='name')
for i in range(10000000):
channel.basic_publish(exchange='', routing_key='name', body=msg)