Как сохранить задачу celery во временную базу данных, которая затем будет обновлена до основной базы данных
Какой хороший способ сравнить новые данные со старыми, которые обновляются каждый день с помощью Django ORM? В принципе, у меня есть скрепер, который собирает хакатоны каждый день (по сути, просто задача celery), и я хочу, чтобы самые новые данные объединялись с моей основной базой данных, которая содержит последние собранные хакатоны за вчерашний день. Я не хочу уничтожать мою главную базу данных и затем просто загружать все, что я только что собрал, так как это кажется расточительным.
Это больше похоже на сравнение данных и нет необходимости сохранять задачу celery в db. Идеальный случай сохранения задачи сельдерея в базе данных - это когда эта задача должна быть запланирована.
Для сравнения данных можно использовать хэш (MD5, SSA1 и т.д.). Это ускорит процесс сравнения данных.
- для существующих записей в базе данных создайте один столбец для хранения хэша всей записи. используйте алгоритм по вашему выбору MD5, SHA1, SHA224, SHA256, Snefru и т.д. для хэширования.
- когда новые данные будут получены/обработаны задачей celery, создайте хэш и этой записи.
- теперь сравните хэш, созданный на втором шаге, с хэшем всех выходящих записей.
- если найдено совпадение, значит данные уже существуют в master.