如何使redis BROKER_URLdynamic部署到AWS实例
我正在部署一个Django应用程序,它使用芹菜任务,并具有redis作为代理后端。 我使用docker进行部署,我的生产服务器是一个亚马逊aws实例。 我面临的问题是Django的设置是不同的本地主机:
BROKER_URL = 'redis://localhost:6379' CELERY_RESULT_BACKEND = 'redis://localhost:6379'
和我所有的unit testing工作。 docker工人失败,除非我改变它
BROKER_URL = 'redis://redis:6379' CELERY_RESULT_BACKEND = 'redis://redis:6379'
我的问题是,如何识别我的部署服务器中的redis broker url? 会是redis://redis:6379
?
PS:对于heroku服务器,有一个用于识别redis url调用REDISTOGO_URL的插件。 有没有类似的亚马逊aws服务器?
BROKER_URL ='redis:// localhost:6379'CELERY_RESULT_BACKEND ='redis:// localhost:6379'
以上意味着redis和celery都在本地主机上运行,django应用程序运行在同一台机器上。
请检查:
1)Redis安装在服务器上,正在运行。 (sudo服务redis-server启动)
2)芹菜安装在服务器上,正在运行。
BROKER_URL ='redis:// redis:6379'CELERY_RESULT_BACKEND ='redis:// redis:6379'
如果你使用的是docker,上面的意思是说有另一个docker容器正在运行redis,你的代码容器被链接到redis容器,别名为'redis'