需要高并发读取 xlsx 文件存入数据库怎么处理比较好
用 django celery 可以实现吗
有多少 xlsx 要读, 还需要高并发
实际不需要多少,但是要处理并发
不是很懂什么叫高并发读取 xlsx 文件,你一个文件需要很多个人一起读?还是一大批文件需要并行处理?
只是简单的并行处理,直接进程池就可以解决问题了
就是会并发上传 xlsx 文件,然后把内容写入数据库
可以实现,celery 是异步的不会阻塞 Django 的 worker 的
并发上传文件,那先上传到对象存储,然后创建异步任务,慢慢处理
现在就直接把文件转换成二进制存到队列里,然后 worker 一个个处理
那这个方案现在是有什么问题吗?数据不大的话,处理得快也不是不行
并发要解决的是数据竞争问题,你这只是读的话,多少并发都没问题。如果是有写,那就看具体情况,要么按时间片分文件,要么读写锁。
之后可能会有数据比较大的情况
那就做优先级队列?把耗时长的任务放后面一点,并行处理 xlsx 也没有太多特殊的操作。
不是我说,高并发有 qps50 没。。。。
异步
随便你怎么实现都行
那就改成先上传到对象存储,然后你处理的时候再从对象存储读回。反正都落盘了,后续都是慢慢处理的问题的。
很耗时吗? Dajngo 部署不是单进程的,不需要 celery
还有就是对象存储的读取,记得走 VPC/内网,既省钱,又提高性能
我研究一下,谢谢
单个文件的操作是独占的,并非高并发的概念。你可能高频,但不是并发
不是单个文件啊,是多次请求处理文件
高频是什么东西没听说过
多个人不可能一起写一个文件
--- 用 django celery 可以实现吗
可以实现。以我的经验,celery 都不需要,就在 view 代码里面处理
很多数据库应该直接支持 Excel 导入
最近要写 iOS 的 app,打算也在这个设备上写安卓的原生 app(如果 iOS 的项目效果好) 主要是写 iPad 端的程序 在 MacMini 和 MacBook 之间来…
2024 年,我年满四十。 孔子说:“四十不惑”。而但丁却说:“人生过半,我在黑暗森林里迷失了方向。”经历过四十岁前后的挣扎,我更赞同但丁。 这篇总结是我过去一年的心路历程。2…
各位 V2EXer 大家好,我是《 Redis 应用实例》的作者黄健宏! 最近新书刚刚出版,今天问出版社拿了些样书进行宣传,好些年前在 V2EX 给大家送过我的其他两本 Red…
合速度