【问题标题】:How to make redis BROKER_URL dynamic on deployment to AWS instance如何在部署到 AWS 实例时使 redis BROKER_URL 动态化
【发布时间】:2017-06-06 05:12:35
【问题描述】:

我正在部署一个使用 celery 任务并将 redis 作为代理后端的 Django 应用程序。我正在使用 docker 进行部署,我的生产服务器是一个 amazon aws 实例。我面临的问题是本地主机的 django 设置不同:

BROKER_URL = 'redis://localhost:6379' CELERY_RESULT_BACKEND = 'redis://localhost:6379'

我所有的单元测试都有效。对于 docker,除非我将其更改为,否则它会失败

BROKER_URL = 'redis://redis:6379' CELERY_RESULT_BACKEND = 'redis://redis:6379'

我的问题是,如何在我的部署服务器中识别 redis 代理 url?会是redis://redis:6379吗?

PS:对于 heroku 服务器,有一个用于识别 redis url 调用 REDISTOGO_URL 的附加组件。 amazon aws server 有类似的东西吗?

【问题讨论】:

    标签: django amazon-web-services docker redis


    【解决方案1】:

    BROKER_URL = 'redis://localhost:6379' CELERY_RESULT_BACKEND = 'redis://localhost:6379'

    以上暗示 redis 和 celery 都在 localhost 上运行,即运行 django 应用程序的同一台机器。

    请检查:

    1) Redis 已安装在服务器上,并且正在运行。 (sudo service redis-server start)

    2) Celery 已安装在服务器上,并且正在运行。

    BROKER_URL = 'redis://redis:6379' CELERY_RESULT_BACKEND = 'redis://redis:6379'

    如果您使用的是 docker,以上暗示有另一个 docker 容器正在运行 redis,并且您的代码容器链接到具有别名 'redis' 的 redis 容器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2019-10-03
      • 2019-04-04
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      相关资源
      最近更新 更多