mirror of
https://github.com/django-q2/django-q2.git
synced 2026-10-05 03:48:12 +08:00
Check for nodes
This commit is contained in:
@@ -1,8 +1,11 @@
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
|
# External
|
||||||
import redis
|
import redis
|
||||||
from redis import Redis
|
from redis import Redis
|
||||||
|
|
||||||
|
# Django
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django_q.brokers import Broker
|
from django_q.brokers import Broker
|
||||||
from django_q.conf import Conf
|
from django_q.conf import Conf
|
||||||
|
|
||||||
@@ -52,6 +55,8 @@ class Disque(Broker):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_connection(list_key: str = Conf.PREFIX) -> Redis:
|
def get_connection(list_key: str = Conf.PREFIX) -> Redis:
|
||||||
|
if not Conf.DISQUE_NODES:
|
||||||
|
raise redis.exceptions.ConnectionError(_("No Disque nodes configured"))
|
||||||
# randomize nodes
|
# randomize nodes
|
||||||
random.shuffle(Conf.DISQUE_NODES)
|
random.shuffle(Conf.DISQUE_NODES)
|
||||||
# find one that works
|
# find one that works
|
||||||
@@ -67,4 +72,6 @@ class Disque(Broker):
|
|||||||
return redis_client
|
return redis_client
|
||||||
except redis.exceptions.ConnectionError:
|
except redis.exceptions.ConnectionError:
|
||||||
continue
|
continue
|
||||||
raise redis.exceptions.ConnectionError("Could not connect to any Disque nodes")
|
raise redis.exceptions.ConnectionError(
|
||||||
|
_("Could not connect to any Disque nodes")
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user