Как сохранить задачу celery во временную базу данных, которая затем будет обновлена до основной базы данных

Какой хороший способ сравнить новые данные со старыми, которые обновляются каждый день с помощью Django ORM? В принципе, у меня есть скрепер, который собирает хакатоны каждый день (по сути, просто задача celery), и я хочу, чтобы самые новые данные объединялись с моей основной базой данных, которая содержит последние собранные хакатоны за вчерашний день. Я не хочу уничтожать мою главную базу данных и затем просто загружать все, что я только что собрал, так как это кажется расточительным.

Это больше похоже на сравнение данных и нет необходимости сохранять задачу celery в db. Идеальный случай сохранения задачи сельдерея в базе данных - это когда эта задача должна быть запланирована.

Для сравнения данных можно использовать хэш (MD5, SSA1 и т.д.). Это ускорит процесс сравнения данных.

  1. для существующих записей в базе данных создайте один столбец для хранения хэша всей записи. используйте алгоритм по вашему выбору MD5, SHA1, SHA224, SHA256, Snefru и т.д. для хэширования.
  2. когда новые данные будут получены/обработаны задачей celery, создайте хэш и этой записи.
  3. теперь сравните хэш, созданный на втором шаге, с хэшем всех выходящих записей.
  4. если найдено совпадение, значит данные уже существуют в master.
Вернуться на верх