#python #redis #celery
Вопрос:
Я взял бесплатную пробную версию Redis, и она дала мне конечную точку с паролем. Я раньше ничего не делал с Redis или сельдереем, поэтому я действительно понятия не имею, как это работает. Из документов Сельдерея все подключаются к локальному хосту, но как я могу подключиться к этой конечной точке?
CELERY_BROKER_URL='redis://localhost:6379',
CELERY_RESULT_BACKEND='redis://localhost:6379'
Чем я должен это заменить? Где я должен ввести пароль?
Моя конечная точка выглядит примерно так: redis-18394.c252.######.cloud.redislabs.com:18394
, Должен ли я добавить пароль в конце этого после a /
?
Ответ №1:
Согласно документации сельдерея, формат
redis://:password@hostname:port/db_number
По умолчанию redis имеет 16 баз данных, поэтому вы можете использовать любое число от 0 до 15 для db_number. Используйте другой номер базы данных для брокера и серверной части результатов.
Комментарии:
1. Я могу подтвердить, что этот формат сработал. Я установил URL-адрес брокера на конечную точку redis с паролем и установил db_number равным 0.
Ответ №2:
Для этого вы можете использовать channel_redis
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": ["password@your_ip"],
},
},
}
Комментарии:
1. Не могли бы вы просто показать мне полный код? Как этот канал передается сельдерею?
2. Я добавил ссылку на репо прямо над кодом. У него есть хороший readme, на который вы можете ссылаться!