- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在部署一个 Django 应用程序,它使用 celery 任务并将 redis 作为代理后端。我正在使用 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 服务器有类似的东西吗?
最佳答案
BROKER_URL = 'redis://localhost:6379'CELERY_RESULT_BACKEND = 'redis://localhost:6379'
以上暗示 redis 和 celery 都在本地主机上运行,也就是运行 django 应用程序的同一台机器。
请检查:
1) 服务器上安装了Redis,并且正在运行。 (sudo service redis-server start)
2) Celery 安装在服务器上,并且正在运行。
BROKER_URL = 'redis://redis:6379'CELERY_RESULT_BACKEND = 'redis://redis:6379'
如果您使用的是 docker,则以上内容暗示有另一个运行 redis 的 docker 容器,并且您的代码容器已链接到别名为“redis”的 redis 容器
关于django - 如何在部署到 AWS 实例时使 redis BROKER_URL 动态化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41776774/
我是一名优秀的程序员,十分优秀!