我需要遍历一个网络驱动器文件夹,此文件夹中大约有 100 万个文件,并且数量每分钟都在增加。
我想要做的是解析文件并使用 Django 在网页中显示它们的信息。
我使用 os.scandir
来遍历所有文件并将它们的信息保存在 sqlite3 数据库中,将整个文件夹遍历一次需要较长时间。
我的问题是:
这个文件夹中每分钟都会添加一些新文件,我需要实时发现这些新文件并将其信息更新到数据库中。
现在有两个方法:
1.遍历所有文件并与数据库中的数据作对比,缺点是耗时太长;
2.在os.scandir
迭代1000次后停止,缺点是os.scandir
的排序不能保证,会有遗漏文件的可能。
这两个方法都不够好。
怎样能高效可靠的完成这一工作?
使用事件通知就好了
方式一:
对于后端程序员来说:
你这种需求也可以简单,写到网络驱动器文件夹的时候,往 mq 写一条,然后订阅 mq 就能实现事件通知
方式二:
Python 如何检查文件是否发生变化