如何防止芹菜执行相同的任务?

Sin*_*ina 8 python django celery django-1.8

我正在实现一个缓存服务器,它使用 celery 任务在后台更新缓存。我只用不同的参数(缓存键)调用了一项任务。

由于在将此服务器连接到我的主要生产服务器后,它将每秒收到数十个对同一个缓存键的请求,我想确保在 celery 队列中永远不会有超过一个具有相同缓存键的更新任务(作为一个同时排队和一组)。

我想在运行任务之前使用 redis 集来确保这一点,但我正在寻找更好的方法。

Mau*_*cco 3

只有一种方法,实现自己的锁机制。官方文档有一个很好的示例页面。。你的想象力是唯一的限制。

希望这可以帮助。