带有 Celery 的 redis 键的自定义前缀

pin*_*och 6 django redis celery

我使用 redis 作为 Django 和 Celery 之间的代理。我有权访问的 redis 实例与许多其他应用程序共享,因此代理不可靠(它使用的 redis 密钥被其他人删除,消息经常被发送给其他应用程序中的工作人员)。改redis数据库并不能解决问题(数据库少,应用多)。

如何配置 Celery 为其使用的所有键添加自定义字符串前缀?文档提到了向队列名称添加前缀的方法,但这不会影响 redis 键。据我所知,底层库 (Kombu) 似乎并没有让用户为其使用的键添加前缀。

Aja*_*pta 5

向所有 Redis 键添加前缀的功能已作为内容的一部分添加。现在你可以像这样配置它:

BROKER_URL = 'redis://localhost:6379/0'
celery = Celery('tasks', broker=BROKER_URL, backend=BROKER_URL)
celery.conf.broker_transport_options = {'global_keyprefix': "prefix"}
Run Code Online (Sandbox Code Playgroud)