【发布时间】:2016-08-29 16:44:48
【问题描述】:
我正在实现一个缓存服务器,它使用 celery 任务在后台更新缓存。我只用不同的参数(缓存键)调用它。
由于在将此服务器连接到我的主生产服务器后,它将每秒收到数十个相同缓存键的请求,我想确保在 celery 队列中使用相同缓存键的更新任务不超过一个(同时作为队列和集合工作)。
我想在运行任务之前使用 redis 集来确保这一点,但我正在寻找更好的方法。
【问题讨论】:
-
您的要求真的是“在 celery QUEUE 中只有一个具有相同缓存键的任务”还是“只有一个具有相同缓存键的任务同时运行(更新缓存)”?
-
@MuhammadTahir 只有一个任务在 celery QUEUE 中具有相同的缓存键
-
看看这是否适合你docs.celeryproject.org/en/latest/tutorials/…。这适用于我提到的第二种情况,但也可以针对您的版本(我提到的第一种情况)进行修改。
-
@funky-future 可能是的。我将尝试查找我当时正在编写的代码,以检查这两个问题的要求是否有任何差异。虽然我记得我用这个github.com/cameronmaske/celery-once 解决了我的问题。
标签: python django celery django-1.8