如何将芹菜任务保存到临时数据库,然后将其更新到主数据库

How to save celery task to a temporary db which will then be updated to the master db

用 Django ORM 将新数据与每天更新的旧数据进行比较的好方法是什么?基本上我有一个每天获取黑客马拉松的抓取器(基本上只是一个芹菜任务),我希望最新的将它与我的主数据库结合起来,该数据库具有昨天获取的最新黑客马拉松。我不想破坏我的主数据库,然后只上传我刚刚获取的所有内容,因为这看起来很浪费。

这更像是数据比较,不需要在数据库中保存芹菜任务。 在数据库中保存 celery 任务的理想用例是当该任务本身需要被安排时。

对于数据比较,您可以使用散列(MD5、SSA1 等)。这将加快数据比较。

  1. 对于数据库中的现有记录,创建一列来存储整条记录的散列。使用您选择的算法 MD5、SHA1、SHA224、SHA256、Snefru 等进行散列。
  2. 当 celery 任务 received/processed 新数据时,也创建该记录的散列。
  3. 现在将在第 2 步中创建的此哈希值与所有现有记录的哈希值进行比较。
  4. 如果找到匹配项,则数据已存在于 master 中。