Celery + Django + Docker = Cat Downloader - Demo-project demonstrating the main principles of Celery

  Рет қаралды 17,689

Кибер Весло

Кибер Весло

3 жыл бұрын

Help with the development of the channel - / cyber_paddle
A simple project that demonstrates the operation of the Celery distributed task queue and an application implemented using Django/Python.
Source code for the project:
github.com/dvk-net/Celery-Dja...

Пікірлер: 53
@mikitayeudakimau6810
@mikitayeudakimau6810 2 жыл бұрын
Огроменное спасибо! Очень мало толковых видео, но вы спасли положение!
@garm8
@garm8 3 жыл бұрын
спасибо за контент! интересно было бы еще про приоритеты очередей узнать, как их реализовывать на практике
@markostr
@markostr 10 ай бұрын
огромное спасибо за промощь !!!
@user-me4oh3wk2v
@user-me4oh3wk2v 2 жыл бұрын
спасибо! это как раз то что мне нужно
@user-kb9pn8ty8n
@user-kb9pn8ty8n 2 жыл бұрын
Супер, мне понравилось. Только музыка не в тему))) сосредотачиваешься, а тут что то зудит в уши. Смотрел в основном с субтитрами. И шрифт маловат)))) Благодарю, от души.
@stiilzizz688
@stiilzizz688 Жыл бұрын
спасибо за урок было круто сначала были проблемы но смог 0)
@JuliaNekrusheva
@JuliaNekrusheva Жыл бұрын
супер инфомативно! спасибо вам!
@cyber-paddle
@cyber-paddle Жыл бұрын
Пожалуйста!
@sfrnv_n
@sfrnv_n 2 жыл бұрын
Спасибо большое, контент просто супер, очень сильно помогли
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Пожалуйста, приходите еще...
@dailyvideo1593
@dailyvideo1593 Жыл бұрын
Лайк просто за превьюху)) Спасибо!
@cyber-paddle
@cyber-paddle Жыл бұрын
А посмотреть? (ВСЁ И ВСЕ)
@user-sh3wb1cy5f
@user-sh3wb1cy5f Жыл бұрын
Большое спасибо! Разобрался наконец.
@cyber-paddle
@cyber-paddle Жыл бұрын
Пожалуйста! Приходите еще, подписывайтесь, ставьте лайки.
@__init__.
@__init__. Жыл бұрын
Отличное видео!
@cyber-paddle
@cyber-paddle Жыл бұрын
Спасибо, подписывайтесь, приходите еще.
@avanguard4762
@avanguard4762 2 жыл бұрын
спасибо!
@99phenomenon
@99phenomenon Жыл бұрын
Good!
@milord3089
@milord3089 Жыл бұрын
Лучшииииий
@cyber-paddle
@cyber-paddle Жыл бұрын
Спаибо! Приходите еще, подписывайтель на канал!
@pavlorosumaka887
@pavlorosumaka887 Жыл бұрын
thanks for your work! how you connected "def home" to your "main"? and where do the function "home" must be place? thank you
@cyber-paddle
@cyber-paddle Жыл бұрын
Hi! Thanks for the comment. I use Django framework in this example, so home func is a view function in django world and I dont need to connect it to the main func. The entrypoint is /proj/wsgi.py
@catpasternak6343
@catpasternak6343 2 жыл бұрын
Спасибо, видео очень помогло начать дружбу с Celery! Вопрос: из каких соображений переименовывали proj в src? Есть какой-то практический смысл?
@cyber-paddle
@cyber-paddle 2 жыл бұрын
src = source, т.е. исходный код проекта. Чтобы в репозитории сразу было видно, что это исходный код, а не что-то другое...
@rushanusmanov4850
@rushanusmanov4850 9 ай бұрын
появилась ошибка: unable to prepare context: path "./webapp" not found, не могу понять как исправить
@cyber-paddle
@cyber-paddle 9 ай бұрын
,/webapp - относительный путь (относительно текущей папки). Может дело в этом?
@ru_ush_g
@ru_ush_g Жыл бұрын
Подскажите, пожалуйста, как перезапускать docker compose так, чтобы он не выстраивал постоянно контейнеры, так как память на windows быстро заполняется. Например, если только изменяю код самого Django приложения, то по идее можно это делать более быстро, запуская только контейнер ?
@cyber-paddle
@cyber-paddle Жыл бұрын
Просто docker-compose up Без build... В общем случае, в Docketfile каждая команда создает "слой", который кешируетс, таким образом то, что изменяется чаще, надо располагать как можно ниже, ибо перестраивается все, что ниже изменившегося. Есть еше команда docker prune ,чтобы очистить всякие ошметки
@mikewinny3856
@mikewinny3856 2 жыл бұрын
интересно, какого размера образуется контейнер для worker'а? он == объему контейнера основного приложения или всё же меньше его?
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Да такой же он... Можно и вытряхнуть все лишнее, главное, чтобы таски были в нужном месте и все зависимости были в нужном месте...
@mikewinny3856
@mikewinny3856 2 жыл бұрын
@@cyber-paddle что значит "вытряхнуть лишнее"? есть к/л "конфигуратор" или надо делать отдельный django project?
@oleguser9611
@oleguser9611 2 жыл бұрын
Спасибо, познавательно. Интересно было бы узнать, как получить ответ в ту форму, откуда задача запускается. Например, я из формы хочу выполнить действие сразу на двух десятках сетевых устройств, время отклика у которых разное, и результат в виде таблички получить на этой же странице. Можно и не одновременно. Буду признателен за идеи - куда копать/что изучать , чтобы такое реализовать .
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Не вдаваясь в подробноссти селери, сходу можно сделать так: - у каждой задачи есть ID или его можно закинуть прямо при вызове - задача, когда выполнилась, может сообщить об этом в общедоступное место (редис, БД) - когда это создано, необходимо опрашивать состояние отправленных задач со сраницы с формой (ajax + rest api..) и менять статус - либо задача может сделать api call в бекенд и этот кол можно отправить в websocket b можно подхватить в вебформе (websockets, django-channels, rest api...) хотя что-то выглядит сложновато... - можно создать группу, цепь, и тд из задач и ждать на стороне бекенда завершения всей группы, только после этого отдать ответ пользователю со статусами... docs.celeryproject.org/en/stable/userguide/canvas.html#the-primitives - так в пред пункте, но ответ дать сразу, а статус выполнения дать сигналом форме по websocket, что все готово... Ну как-то так.... У кого есть идеи - пишите, можно будет и вмдео сделать на основе...
@oleguser9611
@oleguser9611 2 жыл бұрын
@@cyber-paddle Может когда-нибудь сделаете что-то подобное и покажете ? Такие вещи никто не показывает. В качестве task, как вариант, функция, которая отдает рандомное число или набор символов/строку c какой-то непостоянной задержкой (рандом в интервале 5-10 секунд). На исходной странице указывается число N, равное количеству запущенных в дальнейшем функций, и кнопка старта, а в итоге на странице появляется N строк, в каждой из которых результат, которой отдал этот экземпляр функции.
@cyber-paddle
@cyber-paddle 2 жыл бұрын
дойдут руки - сделаю....
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Видео обрабатывается.... Скоро будет...
@Snowman8526
@Snowman8526 2 жыл бұрын
Спасибо Я хоть понял как это работает. У меня вопрос а обязательно в воркер джанга и остальное? может ему создавать отдельный докер с нужным для загрузки файла и запуска celary? Меньше памяти будет занимать и быстрее работать)
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Можно. Смотря что он делает... Если это вещь в себе, то можно его там одного разместить...
@user-kc8hi6cn2x
@user-kc8hi6cn2x 2 жыл бұрын
@@cyber-paddle если я правильно понимаю, то у celery нету доступа к django-orm, можно ли сделать аналог на django managment commands? чтобы он так же делал запросы, получал данные, а потом через django-orm ложил в БД?
@cyber-paddle
@cyber-paddle 2 жыл бұрын
Добрый день! Если как у меня в примере - есть доступ. Там полноценная джанга... Можно воркер сделать урезанным , тогда - да...
@sunlight2093
@sunlight2093 2 жыл бұрын
Здравствуй, а почему на 12:27 ты написал ./src ./scr? У тебя ведь есть только одна папка src, внутри которой находится proj и manage.py Я повторял за тобой, кучу ошибок за 2 дня решил и застрял на том, что файл manage.py у меня не открывается
@cyber-paddle
@cyber-paddle 2 жыл бұрын
там идет копирование... в Dokerfile, в строке 5 устанавливаем рабочую директорию внутри образа на время сборки образа как /app - те как-бы делаем cd /app внутри собираемого образа. Далее в строке 7 копируем файл requirements.txt, лежащий рядом с Dokerfile (т.к ./requirements.txt) в собираемый образ в папку /app (из-за шага в стр 5) Далее в строке 9 копируем папку с исходным кодом, которая лежит рядом с Dokerfile (т.к ./src) в собираемый образ в папку /app/src (из-за шага в стр 5 и ./src) те COPY
@MrSunTrope
@MrSunTrope Ай бұрын
Видос крутой, а почему редис работает если в композе порты не были открыты?
@cyber-paddle
@cyber-paddle Ай бұрын
Так порты надо указывать если нужен доступ снаружи к контейнеру, а внутри, контейнеры находятся в одной сети и прекрасно имеют доступ.
@MrSunTrope
@MrSunTrope Ай бұрын
@@cyber-paddle а точно, спасибо)
@DenisTabac
@DenisTabac 3 жыл бұрын
Привет! Спасибо за видео! Можешь делать и с Dramatiq?
@cyber-paddle
@cyber-paddle 3 жыл бұрын
Привет! Не приходилось никогда...
@VitalyBeketov
@VitalyBeketov Жыл бұрын
ВАЖНО: - Переименовывание папки proj ни в коем случае НЕ делайте через pycharm - refactor - rename. - Вообще всё собьётся и docker не запуститься. Просто переименуйте в операционной системе.
@yawneed
@yawneed 2 жыл бұрын
Автор, делай шрифт побольше, ничего же не видно.
@cyber-paddle
@cyber-paddle 2 жыл бұрын
ok (
@user-ey7rd9ih4g
@user-ey7rd9ih4g Жыл бұрын
Много ошибок выскакивает с путями. Запущен докер на виндовс. Собрается и запускается и сразу ошибка python3: can't open file '/webapp/./src/manage.py': [Errno 2] No such file or directory docker_celery-worker-1 | Usage: celery [OPTIONS] COMMAND [ARGS]... docker_celery-worker-1 | Try 'celery --help' for help. Error: Invalid value for '-A' / '--app': docker_celery-worker-1 | Unable to load celery application. docker_celery-worker-1 | The module proj was not found.
@cyber-paddle
@cyber-paddle Жыл бұрын
Привет! На счет 1й ошибки - надо посмотреть почему исходный код не попал внутрь контейнера... А 2я эсто скорее всего из-за использования более новой версии селери. Там изменился порядок вызова...
@user-ey7rd9ih4g
@user-ey7rd9ih4g Жыл бұрын
@@cyber-paddle Хорошо что оперативно ответили. Так и думал. Будем копать
Gym belt !! 😂😂  @kauermtt
00:10
Tibo InShape
Рет қаралды 17 МЛН
WORLD'S SHORTEST WOMAN
00:58
Stokes Twins
Рет қаралды 50 МЛН
Best Toilet Gadgets and #Hacks you must try!!💩💩
00:49
Poly Holy Yow
Рет қаралды 18 МЛН
Я отправил 800 откликов и получил оффер
20:45
Идущий к IT
Рет қаралды 25 М.
Оптимизация Django. 5 - Celery + Docker
30:31
Senior Pomidor Developer
Рет қаралды 14 М.
Всё, что нужно знать о Docker | Уроки Docker
20:22
The moment we stopped understanding AI [AlexNet]
17:38
Welch Labs
Рет қаралды 808 М.
The Story of Next.js
12:13
uidotdev
Рет қаралды 558 М.
Копия iPhone с WildBerries
1:00
Wylsacom
Рет қаралды 8 МЛН
Здесь упор в процессор
18:02
Рома, Просто Рома
Рет қаралды 430 М.
КРУТОЙ ТЕЛЕФОН
0:16
KINO KAIF
Рет қаралды 6 МЛН
#samsung #retrophone #nostalgia #x100
0:14
mobijunk
Рет қаралды 11 МЛН
Это Xiaomi Su7 Max 🤯 #xiaomi #su7max
1:01
Tynalieff Shorts
Рет қаралды 2,1 МЛН