Python 3.x docker容器中的redis连接错误
我正在尝试设置一个在Docker中运行的轻量级RQ任务队列应用程序。我不断发现这个错误:Python 3.x docker容器中的redis连接错误,python-3.x,flask,redis,docker-compose,Python 3.x,Flask,Redis,Docker Compose,我正在尝试设置一个在Docker中运行的轻量级RQ任务队列应用程序。我不断发现这个错误: ValueError:Redis URL必须指定以下方案之一(Redis://,Redis://,unix://) 从环境变量(os.getenv())抓取时,它不起作用,但在redis://redis:6379/0,它似乎起作用了。然而,在我看来,这并不是一个真正的长期解决方案。我看了看:但是,没有真正的解决办法,线死了 我的redis连接代码如下: import os import redis from
ValueError:Redis URL必须指定以下方案之一(Redis://,Redis://,unix://)
从环境变量(os.getenv()
)抓取时,它不起作用,但在redis://redis:6379/0
,它似乎起作用了。然而,在我看来,这并不是一个真正的长期解决方案。我看了看:但是,没有真正的解决办法,线死了
我的redis连接代码如下:
import os
import redis
from rq import Worker, Queue, Connection
listen = ['default']
redis_url = os.getenv('REDIS_URL', 'redis://localhost:6379')
if __name__ == '__main__':
print(f"redis url: {redis_url}")
with Connection(redis.from_url(redis_url)):
worker = Worker(list(map(Queue, listen)))
worker.work()
当它打印redis\u url
时,它是正确的;我将环境变量,REDIS\u URL
设置为redis://redis:6379
其中redis是docker-compose.yml中的主机名
redis:
image: redis:alpine
expose:
- '6379'
谢谢你的帮助。谢谢。发现字符串末尾有神秘的
\
,所以我使用了.strip()
,它使用.getenv()
方法工作。我认为这与docker compose如何将变量传递给flask有关;我最好的猜测