过去,我使用过 Celery async python 和 Django 应用程序,其中发送方和接收方都了解发送到 RabbitMQ 以通过 Celery 进行处理的任务(可能是集群中的同一个应用程序等)。
我现在有一个用例,其中 .NET 服务以 JSON 的形式向 RabbitMQ 发布消息,每个队列一种消息类型。.NET 应用程序只会发布一条消息并确保它被 Rabbit 正确接收,然后走开。然后,我将运行一个 Django 应用程序来查看消息,因此我不确定使用这些 JSON 消息的正确方法是什么,因此这个 Django 应用程序可以简单地通过其模型存储数据并确认消息已处理。
使用 Celery/Kombu 我不确定访问队列的最佳方式,以便我们每个队列都有一个直接消费者。我知道 Celery 在幕后使用 Kombu,所以我想我可以在那里创建消费者,但后来我预见不可能像 Celery 和 Flower 那样管理流程,然后在应用程序启动时创建一个流氓线程消费者似乎很不稳定最好。