The following redis.ConnectionPool.from_url(config.REDIS_URL) works with Heroku's REDIS_URL, but due to their TLS changes, I was unable to connect using create_pool(RedisSettings().from_dsn(config.REDIS_URL)) which led to the following SSLCertVerificationError error:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)
import redis.asyncio as redis
pool = redis.ConnectionPool.from_url(config.REDIS_URL)
No matter how I pass in ssl=True to the RedisSettings class and set ssl_cert_reqs=none, I get ConnectionErrors, whereas with redis.asyncio, I can establish the pool/client.
While digging around the ARQ code, I saw that the ArqRedis class allows you to pass a pool directly to the pool_or_conn=pool parameter, which works as a workaround for me.
The following
redis.ConnectionPool.from_url(config.REDIS_URL)works with Heroku's REDIS_URL, but due to their TLS changes, I was unable to connect usingcreate_pool(RedisSettings().from_dsn(config.REDIS_URL))which led to the following SSLCertVerificationError error:No matter how I pass in
ssl=Trueto the RedisSettings class and setssl_cert_reqs=none, I get ConnectionErrors, whereas withredis.asyncio, I can establish the pool/client.While digging around the ARQ code, I saw that the ArqRedis class allows you to pass a pool directly to the
pool_or_conn=poolparameter, which works as a workaround for me.