需要高并发读取 xlsx 文件存入数据库怎么处理比较好

24 天前
pureGirl  pureGirl
用 django celery 可以实现吗
3159 次点击
所在节点   程序员  程序员
24 条回复
wen20
wen20
24 天前
有多少 xlsx 要读, 还需要高并发
pureGirl
pureGirl
24 天前
@wen20 实际不需要多少,但是要处理并发
neoblackcap
neoblackcap
24 天前
不是很懂什么叫高并发读取 xlsx 文件,你一个文件需要很多个人一起读?还是一大批文件需要并行处理?
只是简单的并行处理,直接进程池就可以解决问题了
pureGirl
pureGirl
24 天前
@neoblackcap 就是会并发上传 xlsx 文件,然后把内容写入数据库
lxue
lxue
24 天前
可以实现,celery 是异步的不会阻塞 Django 的 worker 的
neoblackcap
neoblackcap
24 天前
@pureGirl 并发上传文件,那先上传到对象存储,然后创建异步任务,慢慢处理
pureGirl
pureGirl
24 天前
@neoblackcap 现在就直接把文件转换成二进制存到队列里,然后 worker 一个个处理
neoblackcap
neoblackcap
24 天前
@pureGirl 那这个方案现在是有什么问题吗?数据不大的话,处理得快也不是不行
alphaControler
alphaControler
24 天前
并发要解决的是数据竞争问题,你这只是读的话,多少并发都没问题。如果是有写,那就看具体情况,要么按时间片分文件,要么读写锁。
pureGirl
pureGirl
24 天前
@neoblackcap 之后可能会有数据比较大的情况
rogerer
rogerer
24 天前
@pureGirl 那就做优先级队列?把耗时长的任务放后面一点,并行处理 xlsx 也没有太多特殊的操作。
8355
8355
24 天前
不是我说,高并发有 qps50 没。。。。
thoo61871
thoo61871
24 天前
异步
随便你怎么实现都行
neoblackcap
neoblackcap
24 天前
@pureGirl 那就改成先上传到对象存储,然后你处理的时候再从对象存储读回。反正都落盘了,后续都是慢慢处理的问题的。
sazima
sazima
24 天前
很耗时吗? Dajngo 部署不是单进程的,不需要 celery
neoblackcap
neoblackcap
24 天前
@pureGirl 还有就是对象存储的读取,记得走 VPC/内网,既省钱,又提高性能
pureGirl
pureGirl
24 天前
@neoblackcap 我研究一下,谢谢
opengps
opengps
24 天前
单个文件的操作是独占的,并非高并发的概念。你可能高频,但不是并发
pureGirl
pureGirl
24 天前
@opengps 不是单个文件啊,是多次请求处理文件
pureGirl
pureGirl
24 天前
@opengps 高频是什么东西没听说过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1108060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX