带有 Celery 的 redis 键的自定义前缀
Posted
技术标签:
【中文标题】带有 Celery 的 redis 键的自定义前缀【英文标题】:Custom prefix for redis keys with Celery 【发布时间】:2018-10-09 03:42:01 【问题描述】:我使用 redis 作为 Django 和 Celery 之间的代理。我有权访问的 redis 实例与许多其他应用程序共享,因此代理不可靠(它使用的 redis 密钥被其他人删除,消息经常发送给其他应用程序中的工作人员)。更换redis数据库并不能解决问题(数据库少,应用多)。
如何配置 Celery 为它使用的所有键添加自定义字符串的前缀?文档提到了向队列名称添加前缀的方法,但这不会影响 redis 键。据我所知,底层库 (Kombu) 似乎不允许用户为其使用的键添加前缀。
【问题讨论】:
【参考方案1】:Celery 尚不支持此功能。由于缺乏劳动力,有关此主题的拉取请求目前被搁置:
https://github.com/celery/kombu/pull/912
【讨论】:
【参考方案2】:您可以只覆盖 celery 任务的前缀值。
@shared_task(bind=True)
def task(self, params):
self.backend.task_keyprefix = b'new-prefix'
【讨论】:
以上是关于带有 Celery 的 redis 键的自定义前缀的主要内容,如果未能解决你的问题,请参考以下文章