【问题标题】:Custom prefix for redis keys with Celery带有 Celery 的 redis 键的自定义前缀
【发布时间】:2018-10-09 03:42:01
【问题描述】:

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

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

【问题讨论】:

    标签: django redis celery


    【解决方案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'
      

      【讨论】:

        猜你喜欢
        • 2015-08-24
        • 2020-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多