也许我问这个问题很愚蠢,但在我做进一步的工作之前,我需要先了解基本概念。
我正在处理几千个 RSS 提要,使用多个 Celery 工作节点和一个 RabbitMQ 节点作为代理。每个提要的 URL 都作为消息写入队列中。工作人员只是从队列中读取 URL 并开始处理它。我必须确保两个工作人员不会同时处理单个 RSS 提要。
确保一次只执行一个任务一文提出了一种基于 Memcahced 的解决方案,用于在处理提要时锁定提要。
但我想了解的是,为什么我需要使用 Memcached(或其他东西)来确保 RabbitMQ 队列上的消息不会被多个工作人员同时使用。我可以在 RabbitMQ(或 Celery)中进行一些配置更改以实现此目标吗?