|
我在着手一个项目,纯练手。
项目用到django+celery,准备搭建一个周期抓取代理IP以及检测代理IP并更新状态的项目。
在抓取部分,是通过create_or_update(),defaults 是ip和port,来写进数据库。
在检测状态时,大致是下面的逻辑:
- for data in Table.objects.all():
- # 检测
- ...
- # 保存更新
- data.status = True # or False
复制代码
但是,在这样的一状态下,我发现,运行一段时间后,数据库里多了很多重复的数据,ip和port是相同的,以至于,当程序再次调用create_or_update时,会报get() return 2 的错误。
我想知道这种数据重复是如何来的?如果可以详细解释一下,最好了。
|
|