крутой гайд, только не понятно как он будет запускаться на серваке ( селери и селери бит), редис я так понимаю в докер контейнере, а сам селери будет у джанги автоматом стартовать после runserver или надо отдельно запускать в каком контейнере?
Уже 2-3 день мучаюсь с этитми редисками, докер компосами и селери , делаю как на видео нихрена не работает, то модуль не найдет когда пишу комманду запустить воркер, то подключится к релиске в докер не хочет, но если ставлю портв 6379 все норм и без базы , ваще нифига не понятно, эта абстракность бесит
@@cristianglodeanu2329 название директории где лежит проект не имеет значения, название директории где лежит файл settings по большому счету тоже, главное чтобы был верный путь в manage.py к файлу с конфигом
Если сходу не получается въехать в докер, делайте все на железе. Ставьте редис, базу и настраивайте приложение. Когда получится на железе, пробуйте в докер.
Еще советую группу по Джанго в телеграм, легко ищется, что-то вроде Django_ru, там можно задать вопрос в том числе и по селери или доуерищации, главное с примерами ошибок и описанием того, что делаете
В целом все по существу, кто знает и делает - понятно все. Вижу вы человек знающий, в админке django русские буквы в после Result не в той кодировке отображаются( "\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435"), при этом если дергать задания через shell то все. Не смог разобраться, может вы знаете решение?)
Конкретно в Celery не сталкивался, посмотри в базе как лежит значение, если в базе тоже коды вместо букв, то значит воркер виноват, можно попробовать добавить ему в окружение переменную PYTHONIOENCODING=utf8
Привет, советую задавать такие вопросы в телеге, есть канал по Джанго, я там сам сижу @pydjango И в вопросе напиши как настроил, что и как запускаешь, скрины там скинь и тд. А то не понятно что ты вообще делаешь, а тут неудобно такое обсуждать
Спасибо за информацию! Подскажите, при запуске под docker контейнеры worker'а и beat'а формируются на безе image'а основного приложения (т.е., потенциально могут иметь необоснованно большой размер даже для маленькой задачки) или это отдельно формирующиеся контейнеры из своих image'ей (предположительно, не очень больших), общающиеся с основным приложением и все вопрос возник при просмотре другого ролика про django+celery под docker, в котором автор напрямую заявил, что worker - это то же приложение, а на вопрос как же всё-таки оптимизировать использование ресурсов как-то вильнул хвостом и скрылся в тине... а найти разумного объяснения, что формируется при запуске например через docker-compose как-то пока не удалось 😕
Здравствуйте, да, воркер и бит это то же приложение, что и основное, вы просто поднимаете 3 контейнера из одного образа. Так что место на жестком диске не занимается лишнее, поскольку образ один. А оперативная память будет занята практически также как если бы вы подняли их без докера
@@mikewinny3856 нет, celery интегрируется в Django для возможности использования ORM и других фичей. В проде обычно воркеры поднимаются сотнями из одного образа и ничего)
А может кто-нибудь подсказать, в чем может быть проблема(mac m2)? Если настройки делать: CELERY_RESULT_BACKEND = 'django-db' то получаю {"exc_type": "WorkerLostError", "exc_message": ["Worker exited prematurely: signal 6 (SIGABRT) Job: 0."], "exc_module": "billiard.exceptions"}
Если помогло то подпишись, я рассказываю про наболевшее ))
celery с версии 4 больше не поддерживается на windows. выход такой: pip install eventlet и запускать команду celery -A worker -l INFO -P eventlet
Спасибо, друг! Отличный гайд получился
Спасибо за гайд, но хотелось бы видос с практическим применением Celery, Celery Result и Celery Beat на какой-нибудь типовой задаче в проде.
Отличная подача, спасибо за гайд!
Good stuff form a good person, well done sir!
Что за трек фоном играет, подскажите пожалуйста!
Linearwave Tuuh - She Share Story
крутой гайд, только не понятно как он будет запускаться на серваке ( селери и селери бит), редис я так понимаю в докер контейнере, а сам селери будет у джанги автоматом стартовать после runserver или надо отдельно запускать в каком контейнере?
@@uixzo отдельно, отдельный контейнер джанго, отдельный бит и воркер
Уже 2-3 день мучаюсь с этитми редисками, докер компосами и селери , делаю как на видео нихрена не работает, то модуль не найдет когда пишу комманду запустить воркер, то подключится к релиске в докер не хочет, но если ставлю портв 6379 все норм и без базы , ваще нифига не понятно, эта абстракность бесит
Мне кажется что название папки должно юыть такое как и у апки, иначе не запустится воркер, в вашем случае это soaqaz папка и название приложения
@@cristianglodeanu2329 название директории где лежит проект не имеет значения, название директории где лежит файл settings по большому счету тоже, главное чтобы был верный путь в manage.py к файлу с конфигом
Если сходу не получается въехать в докер, делайте все на железе. Ставьте редис, базу и настраивайте приложение. Когда получится на железе, пробуйте в докер.
Еще советую группу по Джанго в телеграм, легко ищется, что-то вроде Django_ru, там можно задать вопрос в том числе и по селери или доуерищации, главное с примерами ошибок и описанием того, что делаете
@@BogdanDotPy спс, посмотрю
Отличный гайд!
Если не жалко, поделись ссылкой на документацию django-celery-results. Или расскажи, пожалуйста, где ты узнал какие объекты и методы там есть?
Не жалко конечно, из документации celery
django-celery-results.readthedocs.io/en/latest/
В целом все по существу, кто знает и делает - понятно все.
Вижу вы человек знающий, в админке django русские буквы в после Result не в той кодировке отображаются( "\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435"), при этом если дергать задания через shell то все. Не смог разобраться, может вы знаете решение?)
Конкретно в Celery не сталкивался, посмотри в базе как лежит значение, если в базе тоже коды вместо букв, то значит воркер виноват, можно попробовать добавить ему в окружение переменную PYTHONIOENCODING=utf8
У меня при включении CELERY_RESULT_BACKEND = "django-db" не работает, база mysql. Может как то подругому назвать ее надо?
Привет, советую задавать такие вопросы в телеге, есть канал по Джанго, я там сам сижу @pydjango
И в вопросе напиши как настроил, что и как запускаешь, скрины там скинь и тд. А то не понятно что ты вообще делаешь, а тут неудобно такое обсуждать
У меня тоже не отражается в админке. значение констатнты правильное. есть дискуссия на эту тему на гитхабе селери. однако у меня не получается.
А почему для Redis на локальной машине ты выбрал порт 16379? Ну то бишь, почему не сделал вот так 6379:6379?
Хз, привык как-то уже, что если прога в контейнере то порты хоста не занимать
@@BogdanDotPy но это лишь дело привычки? И я могу спокойно взять одинаковые порты, и всё будет гуд
@@gvadellupa9335 конечно, используй какой хочешь
Коммент для продвижения видео. Спасибо помогло.
Спасибо за информацию!
Подскажите, при запуске под docker контейнеры worker'а и beat'а формируются на безе image'а основного приложения (т.е., потенциально могут иметь необоснованно большой размер даже для маленькой задачки) или это отдельно формирующиеся контейнеры из своих image'ей (предположительно, не очень больших), общающиеся с основным приложением и все
вопрос возник при просмотре другого ролика про django+celery под docker, в котором автор напрямую заявил, что worker - это то же приложение, а на вопрос как же всё-таки оптимизировать использование ресурсов как-то вильнул хвостом и скрылся в тине... а найти разумного объяснения, что формируется при запуске например через docker-compose как-то пока не удалось 😕
Здравствуйте, да, воркер и бит это то же приложение, что и основное, вы просто поднимаете 3 контейнера из одного образа. Так что место на жестком диске не занимается лишнее, поскольку образ один. А оперативная память будет занята практически также как если бы вы подняли их без докера
@@BogdanDotPy ну то есть, по уму надо писать отдельное ПО, например, для периодического формирования отчетов или загрузки внешних данных?
@@mikewinny3856 нет, celery интегрируется в Django для возможности использования ORM и других фичей. В проде обычно воркеры поднимаются сотнями из одного образа и ничего)
@@mikewinny3856 конечно можно запустить воркер селери, драматик или какой еще и в отдельном микросервисе если не нужны никакие зависимости от Джанго
Нет объяснения для чего предназначены функции, их параметры, ее использование, спешишь не понятно куда...
Ну да, стараюсь в новых роликах так не делать) Просто казалось, что это и так понятно и тд (:
Четко и по делу
Хороший гайд, но такое огромное количество переходов, что голова болит.
спасибо!😁
Классный музон на фоне, подскажи название
Linearwave Tuuh - She Share Story
Спасибо
Всё становится сложнее и сложнее для самоучке
Да так всегда кажется, когда за что-то новое берёшься, а потом оп и получается 😄
А такому в ВУЗах не учат, такое самому нужно изучать
не работает, дизлайк
Да харош, чёт не получается гугли или иди в ТГ и пиши чё не работает)
raise ConnectionError(str(exc)) from exc
kombu.exceptions.OperationalError: invalid username-password pair or user is disabled.
Как решить эту ошибку?
Не знаю 🤷
@@BogdanDotPy я решил уже
Кому интересно входите docker exec id_container sh и все работает
А может кто-нибудь подсказать, в чем может быть проблема(mac m2)?
Если настройки делать:
CELERY_RESULT_BACKEND = 'django-db'
то получаю
{"exc_type": "WorkerLostError", "exc_message": ["Worker exited prematurely: signal 6 (SIGABRT) Job: 0."], "exc_module": "billiard.exceptions"}
Я бы и рад ответить, но у меня винда и линух)