nihaoworld 发表于 2024-8-9 08:15

前辈们,能给给建议吗

对于python使用多线程池时,怎样做能将50000个数据,没有丢失的情况下给全部保存下来,球球了

LuGuanDi 发表于 2024-8-9 08:44

什么情况下会丢失?{:1_908:}

inzahgi 发表于 2024-8-9 08:59

加个锁来保存吗?不会的话存数据库吧:lol

我心飞翔1995 发表于 2024-8-9 09:08

提醒想偷懒混积分
版规有写
禁止使用ChatGPT或其他AI生成的答案解答问题
回答就认真回答,AI工具都有,不要违规使用。

回答题主问题,想要确保大量数据快速保存,首先看数据能不能切片,即数据连续性没有严格限制,可以随意切分几个小片段,就和下载工具下载大文件一样。那么,这样就可以将数据切片处理,完成后合并。这是一个常见思路。当然对于数据完整性的保证,需要看数据源是否有完整性校验,或者能不能获取到数据大小信息(这个不太严格),自己在完成后对比。

zunmx 发表于 2024-8-9 09:31

保存,你需要声明你要保存到哪儿?是数据库还是文件?
数据库的话,通过数据库的事务可以做到完整性,配合try-catch(except),如果异常则重试。
文件的话,主要还是看你写入的时候,有没有异常的发生。

数据库的话,可以用INSERT INTO table(col1,col2...) value(),(),() 这样,把你要存储的数据分组,这样的话能提升效率。

多线程,5w个数据用多线程感觉没啥必要,5w条数据并不多,还增加了一定的风险,非要用多线程也不是不行,用好线程锁也行。

如果数据并不是很敏感的(敏感的话,造一些假数据),可以让GPT帮你写代码,不难的。

yushuai033X 发表于 2024-8-9 09:36

threading.Lock 防止多个线程同时写入导致数据丢失或损坏

大兵马元帅 发表于 2024-8-9 11:09

线程锁是什么?还是第一次听说{:1_937:}

vr4u 发表于 2024-8-9 11:41

写入数据库是基本的操作流程,并且在写入的时候做校验。线程锁我认为是保证二级线程能够执行完成,才执行第二条线程,不过这样的话就和顺序执行没有区别了,不知道我理解的对不对

asasascao 发表于 2024-8-9 13:32

5楼说的是啊,这个事情还是要看你需要保存到哪里,保存为什么格式,还有即时性,容错率等等需要考虑
页: [1]
查看完整版本: 前辈们,能给给建议吗