Оптимизация Django. 7 - Параллельные celery таски и их проблемы

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

docker system prune -a -f, очистит все, кроме volumes, а посмотреть все можно чреез команду docker system df

Biongar
Автор

Ох уж эти параллельные таски, с ними надо максимально аккуратно работать.
Спасибо за еще одно чудесное видео!

begula_chan
Автор

Чтобы избежать копипаста в docker-compose можно использовать якоря (&) и ссылки (<<:)

pylounge
Автор

Можно в методе save() указать параметр update_fields в ф-ции set_price равный ('price', ), в ф-ции set_comment равный ('comment', ). Тогда update в sql запросе не будет перезатирать все значения (можно чекнуть логи) объекта, а только указанные в update_fields. В данном случае эти 2 таски можно запустить параллельно.

the_huge_knight
Автор

как вариант, в таких не больших тасках, можно было бы просто использовать

mgjjmfe
Автор

Спасибо большое, Узнал много нового, долго игрался с тасками, не обновлялся прайс, но почему-то когда создал новую подписку в ней все работало. Удалил старые и в новых все хорошо работает, очень интерсесно.

nikvityl
Автор

В asyncio таски ведь не уходят ни в другой поток, ни в другой процесс, они в едином цикле событий, который в одном потоке 00:53

gmghgpv
Автор

Удалить неиспользуемые образы: docker rmi $(docker images -q -f dangling=true)
Удалить контейнеры: docker rm $(docker ps -a -q -f status=exited)

alexey_all
Автор

Лучший канал по Django! Будут ли видосы про автоматизацию деплоя Django проекта через github actions + zero downtime deployment?

jackieuchiha
Автор

Уже жду следующий выпуск, как в сериале залип

ramilelephant
Автор

Вероятно образы с именем 'None' создаются, когда мы делаем ребилд. Имя затирается, а старый образ становится None

belevich_andrei
Автор

Спасибо за видосы, одна маленькая просьбочка! Перед выгрузкой видео ускоряй его слегка, потому что лично мне ютубовского 2х мало для просмотра твоего контента))

TitanicTiming
Автор

По поводу вашего вопроса. Как сделать так чтобы none не создавалось. Я в docker-compose после build вниз добавил image питона такой же как в Dockerfile. Вроде после этого перестает создаваться

Keto-menu
Автор

Можно зайти в контейнер и там уже писать команды, так image не будут создаваться, а результат будет тот же, хотел тебе ещё задать вопрос - а почему не пользуешься тайпхинтами?

mbmlhnu
Автор

а чем больше воркеров тем выше нагрузка на систему правильно? а если сам проект тяжелый? это же сильно по ресурсам бьет, есть ли альтернативные варианты выполнения тасков на такой случай?

gonfrix
Автор

А зачем мы используем transaction.atomic? Ведь select_for_update уже блокирует объекты модели для использования другим воркером. Если сделать то же самое без transaction.atomic, что изменится?

kniplrr
Автор

Столкнулся с проблемой, что из двух задач всегда выполнялась только одна. Никак кроме удаления Singleton решить не смог

dotco
Автор

попробуй запускать команды в нужном контейнере через следующую команду: "docker-compose exec containe_name some_command_in_container" и в этом случае не будет создаваться новый контейнер

ioannchimrov
Автор

Доброго времени суток! Благодарю за прекрасные курсы!

Возник вопрос - если в Celery длительность очереди может быть большая, к примеру, час, то с этим возникают некоторые проблемы:

- Если сервер перезагрузится по какой либо причине, таски исчезнуть, а значит и вся информация, которая должна была обновится, не будет обновляться.

- Если я выключу сервер для обновления версии софта, то будет та же проблема - все таски слетят.

Я чего-то не так понял и этих проблем не существует или для них уже есть решения?

NRodriges
Автор

Я не до конца понял необходимости добавления в запрос select_for_update? Зачем? Судя по доке, лочит строки в таблице, но мы вроде также используем менеджер transaction.atomic, который гарантирует, что операция будет выполнена полностью или не выполнена вовсе.... Можно пояснить подробнее про эту связку?

andreykuskov