( Django ) Flower не видит задач Celery
Кратко:
- Flower не отображает ни одной задачи celery
Я абсолютный новичок в Celery, Flower, по-этому вообще не понимаю что происходит, не говоря уже о том, что при первом запуске Flower - он отображал задачу, но после перезапуска задачи Flower перестал работать и более не подавал сигналов жизни.
И так-же я загулил уже все что мог, нашел все похожие проблемы, но ни одно из предоставленных решений мне не подошло.
Команда запуска Celery:
celery -A config beat -l debug
Команда запуска Flower:
celery -A config flower --adress=127.0.0.1 --port=5555 -l info
Ответ от Flower:
[I 220824 15:16:06 command:162] Visit me at http://localhost:5555
[I 220824 15:16:06 command:170] Broker: redis://127.0.0.1:6379/0
[I 220824 15:16:06 command:171] Registered tasks:
['bank_controller.tasks.task_checking_credits_status',
'celery.accumulate',
'celery.backend_cleanup',
'celery.chain',
'celery.chord',
'celery.chord_unlock',
'celery.chunks',
'celery.group',
'celery.map',
'celery.starmap']
[W 220824 15:16:06 command:177] Running without authentication
[I 220824 15:16:06 mixins:225] Connected to redis://127.0.0.1:6379/0
[W 220824 15:16:07 inspector:42] Inspect method revoked failed
[W 220824 15:16:07 inspector:42] Inspect method stats failed
[W 220824 15:16:07 inspector:42] Inspect method reserved failed
[W 220824 15:16:07 inspector:42] Inspect method active failed
[W 220824 15:16:07 inspector:42] Inspect method conf failed
[W 220824 15:16:07 inspector:42] Inspect method registered failed
[W 220824 15:16:07 inspector:42] Inspect method active_queues failed
[W 220824 15:16:07 inspector:42] Inspect method scheduled failed
celery.py:
import os
from celery import Celery
from celery.schedules import crontab
os.environ.setdefault( 'DJANGO_SETTINGS_MODULE', 'config.settings' )
app = Celery( 'bank' )
app.config_from_object( 'django.conf:settings', namespace = 'CELERY' )
app.autodiscover_tasks()
# Celery beat tasks
app.conf.beat_schedule = {
'checking-credits-status' : {
'task' : 'bank_controller.tasks.task_checking_credits_status',
'schedule' : crontab( minute = '*/1' )
}
}
task.py:
from config.celery import app
from .services.general_bank_service import checking_credits_status
@app.task
def task_checking_credits_status():
checking_credits_status()
settings.py ( настройки Celery/Redis ):
# REDIS RELATED SETTINGS
REDIS_HOST = '127.0.0.1'
REDIS_PORT = '6379'
# CELERY SETTINGS
CELERY_BROKER_URL = f'redis://{REDIS_HOST}:{REDIS_PORT}/0'
CELERY_BROKER_TRANSPORT_OPTIONS = { 'visibility_timeout' : 3600 }
CELERY_RESULT_BACKEND = f'redis://{REDIS_HOST}:{REDIS_PORT}/0'
CELERY_ACCEPT_CONTENT = [ 'application/json' ]
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
Команда пинга:
celery -A config inspect ping
Ответ пинга:
Error: No nodes replied within time constraint
Хотя, я допускаю что пинг я могу использовать не правильно.
Зависимости:
Django==4.1
djangorestframework==3.13.1
redis==4.3.4
celery==5.2.7
flower==1.2.0
На Flower 1.4.0 абсолютно та же проблема.