Я пытаюсь настроить облегченное приложение очереди задач RQ, работающее в Docker. Я продолжаю получать эту ошибку:
ValueError: Redis URL must specify one of the following schemes (redis://, rediss://, unix://)
При захвате из переменной окружения (os.getenv()
) это не работает, но каким-то образом при жестком кодировании в redis://redis:6379/0
это вроде работает. Однако, на мой взгляд, это не долгосрочное решение. Я посмотрел: link1 и link2 , но на самом деле решения не было, поток отключился.
Мой код подключения 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_url
, это правильно; Я установил переменную окружения, REDIS_URL
на redis://redis:6379
, где redis - имя хоста в docker -compose.yml.
redis:
image: redis:alpine
expose:
- '6379'
Благодарю за любую помощь. Спасибо.