作者:风云变幻1892_602 | 来源:互联网 | 2023-08-10 16:48
我的情况如下:
我需要处理10个数据集。我将使用10个线程并行处理所有线程(每个线程最多可能需要一个小时)。在所需数据集中找到一些信息后,将其写入sqlite数据库。我可能还必须更新现有行。在所有数据集处理完毕之前,我不会进行任何选择或删除。
据我了解,sqlite无法很好地处理这种情况,因为只有1个线程可以锁定文件写入,并且我不想让其他线程等待直到获得锁定。
所以我的想法是我创建另一个线程来处理所有这些写操作。当处理线程找到要写入数据库的内容时,会将其发送到写入线程。然后,writer线程可以创建一个新线程以将其写入db,以便它可以处理是否有另一个请求进入,如果已经有其他请求将其添加到队列中,则可以将其添加到队列中。因此,我们只有1个线程尝试实际写入数据库。
我的主要问题如下:
这项工作会正常吗?还有什么已经做到了吗?
如果这很重要,我正在使用python。
谢谢