Каков наиболее эффективный способ синхронизации моей базы данных и данных, полученных из API? - PullRequest
0 голосов
/ 09 января 2020

Я храню данные и статьи пользователя с помощью Pocket API в базе данных SQLite с использованием Django Framework. Как я могу эффективно поддерживать согласованность между базой данных и данными, полученными из API? Я планирую обновлять базу данных каждые 24 часа.

1 Ответ

0 голосов
/ 10 января 2020

Должно быть просто с заданиями хрон . Если у вас уже есть модель с logi c для извлечения данных из Pocket API и ее анализа, это просто:

class MyCronJob(CronJobBase):
    RUN_EVERY_MINS = 120 # every 2 hours

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
    code = 'my_app.my_cron_job'    # a unique code

    def do(self):
        data = fetch_your_data()
        save_data(data)

Если у вас еще нет логики разбора c, Я бы предложил Django Сериализаторы Rest Framework . Использовать сериализаторы просто, а сохранение данных сокращается до:

def save_data(json_data):
    serializer = YourPocketDataSerializer(json_data)
    serializer.save()
...