Как в Django автоматически заполнять модель с некоторой периодичностью?
Назрела необходимость периодически (например, раз в 5 секунд) добавлять данные в модель. Пока на ум приходит только способ при помощи кастомной manage.py команды, которую запускать по крону.
То есть, кроном дёргаем "manage.py doit", скрипт обращается по АПИ к источнику, получает данные и если они отличны от имеющихся, то обновляет/добавляет данные в модели.
Данный способ не совсем устраивает, т.к. необходимо будет динамически менять время обновления данных и, возможно, добавления новых источников.
Существуют ли какие либо другие способы, способные способные помочь в решение данной задачи?
Крон не подходит для задач, которые нужно выполнять каждые несколько секунд. Периодичность максимум 1 минута. Конечно, можно писать всякие костыли, но я советую посмотреть в сторону www.celeryproject.org
Можно будет запускать таск, в ходе его работы вычислить время, через которое нужно выполнить его еще раз, с точностью до секунды.
Просто написать скрипт на любом языке, например пайтон, и держать его постоянно запущенным. А из этого скрипта уже дергать данные и напрямую смотреть в бд или ещё куда. Там же и будет динамически рассчитываться время, через сколько снова проверить и засыпать.