Kombu / Celery Publisher订阅服务器

时间:2019-03-24 00:38:14

标签: python rabbitmq celery publish-subscribe kombu

我有一个非常简单的Django应用。当前,该应用正在使用RabbitMQ(cloudamqp)发布者队列。这是消费者的代码:

 from kombu import Connection, Exchange, Queue

 media_exchange = Exchange('media', 'topic', durable=True)
video_queue = Queue('video', exchange=media_exchange,  routing_key='video')

def process_media(body, message):
  print("welcome to consumer")
  print(body)
  message.ack()

# connections
with Connection('amqp://amqphost') as conn:
    # consume
    with conn.Consumer(video_queue, callbacks=[process_media]) as consumer:
        # Process messages and handle events on all channels
        while True:
            conn.drain_events()

如果我将这些代码放在 my_consumer.py 中,并从这样的终端执行,它将按预期工作。

$ python my_consumer.py

但是,如果我放入 tasks.py 并放入任务方法中,它将无法正常工作。我想知道是否有什么办法可以将它与芹菜工作者和任务联系起来。我正在运行此celery命令以打开工作程序

$ celery -A email_service  worker -l info -Q video

0 个答案:

没有答案