I have a requirement to support Redis in cluster and non-cluster mode.
I have been researching adding Redis Cluster support to arq.
This is what I have done so far:
Add "cluster: bool = False" flag to RedisSettings
import RedisCluster
from redis.asyncio.cluster import RedisCluster
In cluster mode extend class ArqRedis from RedisCluster
class ArqRedis(RedisCluster)
This works and I am able to connect to a Redis cluster.
However, there are several issues with redis.asyncio.cluster.RedisCluster
It does not support the pipeline command with transactions
It does not support MULTI/EXEC
arq uses the above commands heavily for atomic access to jobs, job results, etc
Does anyone have any insights into this? Has anyone looked at cluster support in arq?
I looked at aioredis-cluster python client, and that too has the same missing transactions support
I have a requirement to support Redis in cluster and non-cluster mode. I have been researching adding Redis Cluster support to arq. This is what I have done so far:
This works and I am able to connect to a Redis cluster. However, there are several issues with redis.asyncio.cluster.RedisCluster
arq uses the above commands heavily for atomic access to jobs, job results, etc Does anyone have any insights into this? Has anyone looked at cluster support in arq? I looked at aioredis-cluster python client, and that too has the same missing transactions support