Size: a a a

Django [ru] #STAY HOME

2019 April 25

V

Vadim in Django [ru] #STAY HOME
Asfir
У меня есть задача -- очищать устаревшие записи в бд, где expire >= current_timestamp - date
Саму функцию я сделал в питоне, но я не знаю как сделать так что бы оно проверяло устаревшие записи каждые 12 часов. Как правильно бы сделать эту проверку? Может цикличным скриптом на фоне в сервере или декоратором перед функцией посещения index?
создай manage команду и просади в cron
источник

A

Asfir in Django [ru] #STAY HOME
Мне уже подсказали про крон, спасибо)
источник

M

Marat in Django [ru] #STAY HOME
Всем привет! Может кто сталкивался с такой проблемой при авторизации в приложение через  facebook, fb выдает такую ошибку   "Недействительный идентификатор приложения: Непохоже, что это действительный идентификатор приложения."  id и secret указаны правильно, использую social_django
источник

l

lexx in Django [ru] #STAY HOME
Кто знает как в джанго орм сделать запрос наподобие first(), но только по нескольким значениям поля? Например, у нас есть колонка entity_type, которая для каждого типа имеет свой айди, и есть колонка value, в которой лежит некое значение. Так же есть поле даты создания. Хочется одним запросом вытащить все последние значения value (через order_by по дате создания записи), для entity_type__in = [1, 2, 3] и построить словарь {entity_type: value, … }
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Asfir
У меня есть задача -- очищать устаревшие записи в бд, где expire >= current_timestamp - date
Саму функцию я сделал в питоне, но я не знаю как сделать так что бы оно проверяло устаревшие записи каждые 12 часов. Как правильно бы сделать эту проверку? Может цикличным скриптом на фоне в сервере или декоратором перед функцией посещения index?
ты можешь это сделать, например, если зарегистрируешься на Google Cloud и добавишь скрипт как Cloud Function (можно без Zappa запускать, https://stackoverflow.com/a/20968008), дальше по гайду https://cloud.google.com/scheduler/docs/tut-pub-sub
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
в общем-то, это один из способов истребить Celery
источник

l

lexx in Django [ru] #STAY HOME
А что не так с Celery?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
lexx
А что не так с Celery?
ну, многим не нравится) там костыль на костыле, все хотят, многие пробуют, но как-то пока всё ещё самая популярная очередь задач с воркерами
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
лично мне вообще не нравится сам подход, когда 1 кодовая база включает в себя И проект И задачи
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
то есть как мне кажется, воркер НЕ должен грузить никакую Django с его settings.py и кучей всяких аппов там
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
вот, например, если мы говорим про "кривой js", там у service worker'а есть importScripts (чётко указываем, что ему надо загрузить) (https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/importScripts)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
но вот в Celery почему-то считается, что надо вообще всё что можно импортировать) причём даже если я сам импортов не делаю, но воркер увидит Django (по переменным окружения или ещё как-нибудь там), он попробует сделать некий фикс поддержки Django и это в свою очередь приведёт к импорту settings.py (в котором может быть что-то, плохо совместимое с воркерами, например, подгрузка каких-нибудь сертификатов Auth0, которые не подгрузятся и это всё упадёт лишний раз) и вот ты такой фиксишь это и думаешь, что всё это жутко криво
источник

l

lexx in Django [ru] #STAY HOME
Спасибо за мнение
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
вот тот факт, что из-за Celery надо усложнять settings.py, делая его простой вариант (для Celery) и полный - это выглядит как антипаттерн

но к Celery отдельно от Django, как часть Airflow, у меня претензий в общем-то нет)
источник

A

Andrey in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
вот разработка на Django - это именно разработка, а не программирование)
Это ремесло, а не искусство
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Andrey
Это ремесло, а не искусство
именно)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
программирование - в общем-то тоже нужно как ремесло) но творчества там больше)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
смотрите, в 3.0 будет ASGI поддержка в базе
источник

A

Andrey in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
мне часто "достаются" всякие задачи про синхронизацию) я вчера пытался завести про это тему) смотрите:

есть два микросервиса на Django с RESTful API, есть Google Cloud) там Cloud Pub/Sub, Cloud Firestore, Cloud Tasks, плюс ещё кролик есть (FIFO-очереди, значит)

допустим, надо сделать некую синхронизацию одного микросервиса с другим, то есть скрипт на serverless триггерится по Pub/Sub, делает несколько (много) GET-запросов на сервис А, потом несколько (много) POST/PUT запросов на сервес Б, вопрос: как бы вы это сделали? в 1 serverless-функции или разбили бы на разные? если на разные (что кажется правильнее), то как бы вы контролировали порядок выполнения операций черещ Firestore или RabbitMQ?
источник