Pull to refresh
4
0.9
Иван Елфимов @cvaynex

Developer Advocate

Send message

Понятно, то есть с celery нужно будет писать и саму management-команду и обвязку для нее с декоратором task. django-chronograph убирает часть с @task.

в каких случаях нужно команды из админки запускать?

Например отложенный запуск. Мы можем запланировать выполнение команды не в прайм-тайм. Но и CI/CD и CLI мы тоже активно используем.

Или например мы можем завести в админке две Job, у которых будет одинаковая команда и разные параметры. Так одной и той же командой может пользоваться несколько человек, не мешая друг другу.

django-chronograph — это из разряда «один раз втянулся и теперь не знаешь как без этого жить».

Несколько скринов хронографа объяснят лучше тысячи слов :)

Форма Job из django-chronograph
Форма Job из django-chronograph
Список запусков команд
Список запусков команд
Логи отдельного запуска
Логи отдельного запуска

И не думали обижаться :)

Заходите снова, у нас 2.5 миллиона отелей и тысячи идей для вашего будущего путешествия!

Похоже, что Вы правы. Я уберу эту часть поста, пока докапываемся до истины. Сходу не нашёл в каком именно месте мы подставляем set. Спасибо за замечание!

У нас в некоторых местах есть костылик, когда мы update_fields изменяем перед сохранением модели, что-то вроде такого:

def save(self, *args, **kwargs):
    if kwargs.get('update_fields') and smth:
        kwargs['update_fields'].append('another_field')

А к set'ам append'ить нельзя:

>>> x = [1, 2, 3]
>>> x.append(4)
>>> x
[1, 2, 3, 4]
>>> y = {1, 2, 3}
>>> y.append(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'set' object has no attribute 'append'

Да, разрабатываем сами.

Свою ORM писать не выгодно, потому что бизнесу нужен продукт и будет сложно обосновать, почему так много времени нужно на разработку велосипеда, ведь есть столько готовых решений. Но бывает и так, что все готовые решения не подходят, слишком медленные или не поддерживают что-то, тогда это может быть хорошим обоснованием.
А не практичнее для сложных запросов использовать SQLalchemy?

Соглашусь с ArsenAbakarov, чем меньше поддерживать технологий и описаний моделей, тем лучше.

OLAP
Vertica
timeseries DB

У нас всё это тоже есть, но больше используется для аналитики. Думаю стоит попробовать внедрить и в продукте.


И скорость для ручки в 3 секунды тоже так себе результат.

Это только первый ответ для большого партнера с сотнями бронирований. После
первого запроса кешируем результат на несколько минут и ручка отвечает в пределах 100 мс. За последние 90 дней среднее время ответа ручки — 600 мс. Для нас приемлемо, тем более, что это не ключевой функционал сервиса.

Не KeyTextTransform, потому что очень мало про это документации, проглядели.


Сейчас попробовал, и он не приводит правильно, типы, взрывается на null значениях, даже если явно прописать Cast в DecimalField:


Cast(KeyTextTransform(partner.reporting_currency, 'hotel__currency_data'), DecimalField())

Information

Rating
1,608-th
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer, DevRel