При изменении модели необходимо запустить дорогостоящий расчет DjangoPython

Программы на Python
Ответить
Anonymous
 При изменении модели необходимо запустить дорогостоящий расчет Django

Сообщение Anonymous »

Я работаю над приложением Django, в котором есть модель с полем, которое необходимо вычислять при изменении модели. Сам расчет относительно дорог (1+ секунд), особенно если/когда это поле пересчитывается для большого набора запросов. Важно, чтобы это поле пересчитывалось сразу после изменения модели, поскольку оно определяет рабочий процесс, которому должен следовать пользователь, и значение поля передается в пользовательский интерфейс, чтобы пользователь мог его увидеть. Как минимум, необходимо гарантировать выполнение расчета после обновления или каким-либо образом указать, что расчет устарел.
Текущая реализация не представляла проблемы, поскольку ранее расчет был менее сложным/ затратный (до того, как клиент запросит изменения) заключается в следующем:
  • пользователь вносит изменения в пользовательский интерфейс, и модель обновляется
  • API получает изменения и применяет изменения к модели
  • модель .save() переопределяется, поэтому поле вычисляется и устанавливается
В этой реализации мы также отключили менеджер набора запросов в модели, чтобы предотвратить использование . update(), чтобы гарантировать, что поле всегда пересчитывается в .save().
Мне любопытно, как другие реализовали бы что-то подобное, чтобы быть максимально эффективным и не полагаться на блокировку. сохраните, чтобы закончить.

Подробнее здесь: https://stackoverflow.com/questions/793 ... del-change
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»