Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x docker容器中的redis连接错误_Python 3.x_Flask_Redis_Docker Compose - Fatal编程技术网

Python 3.x docker容器中的redis连接错误

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

我正在尝试设置一个在Docker中运行的轻量级RQ任务队列应用程序。我不断发现这个错误:

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有关;我最好的猜测