Articles of rabbitmq

Asyncio y rabbitmq (asynqp): cómo consumir de varias colas simultáneamente

Estoy tratando de consumir varias colas al mismo tiempo usando python, asyncio y asynqp . No entiendo por qué mi llamada a la función asyncio.sleep() no tiene ningún efecto. El código no se detiene allí. Para ser justos, en realidad no entiendo en qué contexto se ejecuta la callback, y si puedo ceder el control […]

El estado de la tarea de apio depende de CELERY_TASK_RESULT_EXPIRES

Por lo que he visto, el estado de la tarea depende completamente del valor establecido para CELERY_TASK_RESULT_EXPIRES: si verifico el estado de la tarea dentro de este intervalo después de que la tarea haya terminado de ejecutarse, el estado regresó: AsyncResult(task_id).state es correcto. Si no, el estado no se actualizará y permanecerá para siempre PENDIENTE. […]

Las tareas periódicas de Django Celery se ejecutan pero las colas de RabbitMQ no se consumen

Pregunta Después de ejecutar tareas a través del progtwigdor de tareas periódicas de apio, batir, ¿por qué tengo tantas colas sin consumir en RabbitMQ? Preparar Aplicación web Django ejecutándose en Heroku Tareas progtwigdas a través del apio. Las tareas se ejecutan a través de apio trabajador El intermediario de mensajes es RabbitMQ de ClouldAMQP Procfile […]

Error de “pika.exceptions.ConnectionClosed” al utilizar rabbitmq en python

Estoy usando el tutorial “hola mundo” en: http://www.rabbitmq.com/tutorials/tutorial-two-python.html . worker.py parece a esto import pika import time connection = pika.BlockingConnection(pika.ConnectionParameters( host=’localhost’)) channel = connection.channel() channel.queue_declare(queue=’task_queue’, durable=True) print ‘ [*] Waiting for messages. To exit press CTRL+C’ def callback(ch, method, properties, body): print ” [x] Received %r” % (body,) time.sleep( body.count(‘.’) ) print ” [x] Done” […]

Apio configurar conexión separada para productor y consumidor.

Tenemos una configuración de aplicación en heroku, que utiliza apio para ejecutar trabajos en segundo plano. La aplicación de apio utiliza RabbitMQ como agente. Usamos el complemento RabbitMQ Bigwig de heroku como agente de mensajes AMQP. Este complemento especifica dos direcciones URL separadas, una optimizada para el productor y otra optimizada para el consumidor. Además, […]

pika, stop_consuming no funciona

Soy nuevo en rabbitmq y pika, y tengo problemas para dejar de consumir. Configuración de canal y cola: connection = pika.BlockingConnection(pika.ConnectionParameters(‘localhost’)) channel = connection.channel() channel.queue_declare(queue=new_task_id, durable=True, auto_delete=True) Básicamente, el consumidor y el productor son así: consumidor: def task(task_id): def callback(channel, method, properties, body): if body != “quit”: print(body) else: print(body) channel.stop_consuming(task_id) channel.basic_consume(callback, queue=task_id, no_ack=True) channel.start_consuming() […]

Ayuda de diseño de apio: cómo evitar la ejecución simultánea de tareas

Soy bastante nuevo en Celery / AMQP y estoy tratando de idear un diseño de tarea / cola / trabajador para cumplir con los siguientes requisitos. Tengo varios tipos de tareas “por usuario”: por ejemplo, TaskA, TaskB, TaskC. Cada una de estas tareas “por usuario” lee / escribe datos para un usuario particular en el […]

Django, RabbitMQ y Celery: ¿por qué Celery ejecuta versiones antiguas de mis tareas después de actualizar mi código Django en desarrollo?

Así que tengo una aplicación Django que ocasionalmente envía una tarea a Celery para su ejecución asíncrona. Descubrí que mientras trabajo en mi código en desarrollo, el servidor de desarrollo de Django sabe cómo detectar automáticamente cuándo ha cambiado el código y luego reiniciar el servidor para que pueda ver mis cambios. Sin embargo, la […]

Eliminar tarea / Tarea periódica en apio

¿Cómo puedo eliminar una tarea regular o una tarea periódica en el apio?

Apio ¿Por qué la tarea se queda en la cola

Así que estoy usando apio con RabbitMQ. Tengo una API RESTful que registra un usuario. Estoy usando el trabajador remoto de Celery para enviar un correo electrónico de registro de forma asíncrona para que mi API pueda devolver una respuesta rápida. from .tasks import send_registration_email def register_user(user_data): # save user to the database etc send_registration_email.delay(user.id) […]