Перебровал кучу туториалов по запуску django celery, так и не сложилось единой картинки в голове. В общем, сейчас django celery исправно работает. Отсылает задачи в очередь, выполняет их, и в самой views.py приложения я могу по id запросить состояние задачи, посмотреть выполнилось таска или нет.
Но запуск flower не показывает ни воркеров, ни задач.
Собственно при запуске flower уже видно, что оно криво запустилось
K:\sw\prod_web_site3>C:\Python27\python.exe manage.py celery flower -A prod_web
site.celeryapp:app_celery worker
[I 160511 20:35:08 command:136] Visit me at http://localhost:5555
[I 160511 20:35:08 command:141] Broker: redis://localhost:6379/0
[I 160511 20:35:08 command:144] Registered tasks:
['accounts.tasks.just_print',
'accounts.tasks.test',
'celery.backend_cleanup',
'celery.chain',
'celery.chord',
'celery.chord_unlock',
'celery.chunks',
'celery.group',
'celery.map',
'celery.starmap']
[I 160511 20:35:08 mixins:231] Connected to redis://localhost:6379/0
[W 160511 20:35:11 control:44] 'stats' inspect method failed
[W 160511 20:35:11 control:44] 'active_queues' inspect method failed
[W 160511 20:35:11 control:44] 'registered' inspect method failed
[W 160511 20:35:11 control:44] 'scheduled' inspect method failed
[W 160511 20:35:11 control:44] 'active' inspect method failed
[W 160511 20:35:11 control:44] 'reserved' inspect method failed
[W 160511 20:35:11 control:44] 'revoked' inspect method failed
[W 160511 20:35:11 control:44] 'conf' inspect method failed
Зарегистрированные задачи flower увидел, смог подключиться к базе но почему то ожидаемые методы оказались в нерабочем состоянии
Также команда пинг тоже не выполняется
K:\sw\prod_web_site3>C:\Python27\Scripts\celery.exe -A prod_web_site.celeryapp:app_celery inspect ping
Error: No nodes replied within time constraint.
Как запускал воркер
K:\sw\prod_web_site3>python manage.py celery worker -l debug --pythonpath=C:\Python27\
селерикам
python manage.py celerycam --frequency=5.0
возможно дело в settings.py в котором накопился венегрет настроек из разных туториалов, приведу его на всякий случай почти полностью. Для меня важно чтобы работали в первую очередь юзерена, селери, вместо флауэр могу изобрести свой велосипед, благо во views.py могу сохранять пиды запущенных задач и мониторить их состояние. Но буду рад, если коллективный разум подскажет способы диагностики проблем с флауэрс, толковые туториалы
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'userena',
'guardian',
'easy_thumbnails',
'accounts',
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ru'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = '/static/'
AUTHENTICATION_BACKENDS = (
'userena.backends.UserenaAuthenticationBackend',
'guardian.backends.ObjectPermissionBackend',
'django.contrib.auth.backends.ModelBackend',
)
ANONYMOUS_USER_ID = -1
AUTH_PROFILE_MODULE = 'accounts.UserProfile'
USERENA_SIGNIN_REDIRECT_URL = '/accounts/%(username)s/'
LOGIN_URL = '/accounts/signin/'
LOGOUT_URL = '/accounts/signout/'
SITE_ID = 2
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '***'
EMAIL_HOST_PASSWORD = '***'
#
import djcelery
djcelery.setup_loader()
INSTALLED_APPS += ('djcelery', 'djkombu',)
BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
BROKER_HOST = "localhost"
BROKER_BACKEND="redis"
REDIS_PORT=6379
REDIS_HOST = "localhost"
BROKER_USER = ""
BROKER_PASSWORD =""
BROKER_VHOST = "0"
REDIS_DB = 0
REDIS_CONNECT_RETRY = True
CELERY_SEND_EVENTS=True
#CELERY_RESULT_BACKEND='redis'
CELERY_TASK_RESULT_EXPIRES = 10
CELERYBEAT_SCHEDULER="djcelery.schedulers.DatabaseScheduler"
CELERY_ALWAYS_EAGER=False
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 3600}
CELERY_TASK_RESULT_EXPIRES = 7*86400 # 7 days
CELERY_SEND_EVENTS = True
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
#CELERY_ACCEPT_CONTENT = ['application/json']
#CELERY_TASK_SERIALIZER = 'json'
#CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Europe/Kiev'
from datetime import timedelta
CELERY_ALWAYS_EAGER=False
BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
CELERYCAM_EXPIRE_SUCCESS = timedelta(days=30)
CELERYCAM_EXPIRE_ERROR = timedelta(days=7)
CELERYCAM_EXPIRE_PENDING = timedelta(days=7)
Когда то флауэр работал, но воркер при этом задачи принимал, но не хотел их выполнять, теперь воркер работает, но флауэр отказывается.