Код: Выделить всё
PASSWORD
Код: Выделить всё
celery.py
Код: Выделить всё
import os
from celery import Celery
from dotenv import load_dotenv
load_dotenv()
# Redis password (currently hardcoded for testing)
redis_password = "PASSWORD"
# Debugging
print(f"Redis password: {redis_password}")
app = Celery(
'connectors',
broker=f'redis://:{redis_password}@localhost:6380/0',
backend=f'redis://:{redis_password}@localhost:6380/0',
include=['connectors.tasks.cricket_tasks']
)
# Load custom configuration
app.config_from_object('connectors.tasks.celeryconfig')
if __name__ == '__main__':
app.start()
< /code>
config (celeryconfig.py
Код: Выделить всё
from celery.schedules import crontab
from dotenv import load_dotenv
load_dotenv()
redis_password = "PASSWORD"
# Debugging
print(f"config password: {redis_password}")
broker_url = f'redis://:{redis_password}@localhost:6380/0'
result_backend = f'redis://:{redis_password}@localhost:6380/0'
accept_content = ['json']
result_accept_content = ['json']
task_serializer = 'json'
enable_utc = False
timezone = 'Asia/Kolkata'
task_time_limit = 300
task_annotations = {
'*': {'rate_limit': '20/s'},
'tasks.add': {'rate_limit': '10/s', 'time_limit': 60},
}
beat_schedule = {
'run-daily-match-scheduler': {
'task': 'connectors.tasks.cricket_tasks.run_match_scraper',
'schedule': crontab(hour=8, minute=0),
},
'run-daily-table': {
'task': 'connectors.tasks.cricket_tasks.schedule_today_table',
'schedule': crontab(minute=30, hour=23),
},
'run-daily-mvp': {
'task': 'connectors.tasks.cricket_tasks.schedule_today_mvp',
'schedule': crontab(minute=30, hour=23),
},
'run-daily-scorecard': {
'task': 'connectors.tasks.cricket_tasks.schedule_today_scorecard',
'schedule': crontab(minute=30, hour=23),
},
'run-daily-btb': {
'task': 'connectors.tasks.cricket_tasks.schedule_today_btb',
'schedule': crontab(minute=30, hour=23),
},
}
< /code>
docker compose (docker-compose.yml
Код: Выделить всё
services:
qdrant:
image: qdrant/qdrant:latest
restart: always
container_name: qdrant
ports:
- 6333:6333
- 6334:6334
expose:
- 6333
- 6334
- 6335
configs:
- source: qdrant_config
target: /qdrant/config/production.yaml
volumes:
- ./qdrant_data:/qdrant/storage
redis:
image: redis:latest
hostname: redis
ports:
- "6379:6380"
command: ["redis-server", "--requirepass", "PASSWORD"]
configs:
qdrant_config:
content: |
log_level: INFO
< /code>
Я попытался запустить своего работника сельдерея, используя команду: < /p>
celery -A connectors.tasks.cricket_tasks worker --loglevel=info
< /code>
Показывает правильно печатанный пароль: < /p>
Redis password: PASSWORD
config password: PASSWORD
< /code>
и успешно обнаруживает задачи: < /p>
[tasks]
. connectors.tasks.cricket_tasks.run_match_scraper
. connectors.tasks.cricket_tasks.schedule_today_btb
. connectors.tasks.cricket_tasks.schedule_today_matches
. connectors.tasks.cricket_tasks.schedule_today_mvp
. connectors.tasks.cricket_tasks.schedule_today_scorecard
. connectors.tasks.cricket_tasks.schedule_today_table
. connectors.tasks.cricket_tasks.test_task
< /code>
Однако я получаю следующую ошибку: < /p>
[2025-04-20 12:32:30,349: ERROR/MainProcess] consumer: Cannot connect to redis://localhost:6379/0: Connection closed by server..
Trying again in 2.00 seconds... (1/100)
127.0.0.1:6379> auth PASSWORD
OK
127.0.0.1:6379> ping
PONG
< /code>
Redis правильно ответил, подтверждая, что он работает, и пароль правильный. < /p>
Несмотря на все это, сельдерей все еще не может аутентифицировать. < /p>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -container