1
shiny 2014-08-18 21:06:47 +08:00 1
这个问题理解起来很费劲,好像使用异步队列能解决。
|
2
akira 2014-08-18 23:20:35 +08:00 1
最坏的情况下,也就是6000个并发,每个链接提交100个字符, 等于600kb的数据。这个项目的难点根本不在数据入库的这里,而是在前面的gateway。
如果是我设计的话,会设计成多个网关而不是一个,收到答案直接存本地文件或者干脆就直接丢内存,后面再来做处理提交到后端处理服务器。 至于数据交换格式,那根本无伤大雅,随便你喜欢。 |
3
Actrace 2014-08-19 00:33:58 +08:00 1
问题的根源是服务端性能.
从架构上考虑,如果网关没有什么负载,那么瓶颈就在于"总服务器". 但是实际情况可能更加复杂.你选择的处理语言,处理方式,数据库类型,甚至优化有没有做好,在相同的硬件上会体现出完全不同的负载能力. 理论上数据库对批量查询会做出很好的处理.我感觉批量提交应该不是卡的根源~ 难道你用的是windows服务器? |
4
jsjscool 2014-08-19 14:08:37 +08:00 1
500行超时……应该是服务端处理的问题。平时用PHPExcel处理文件上万行都很轻松。用户上传数据还可以选择csv格式。不过建议你用json。另外6000个算比较大的并发,可以考虑负载均衡。或者协调同学们上传作业的时间,避开高峰。
|
5
magine OP |
6
magine OP @jsjscool
第一次写站点,可能真有写得不好的方,所以稍微说一下我的做法,求斧正: 先上传xls文件存入/tmp 按行读取数据(每行14列),存入字典。 对于每一次行读入:首先,查看‘类型’是否已存在,否则创建新‘类型’;然后,新建‘设备’,外键指向新建或已存在的‘类型’;其间会记录新建的‘类型’和‘设备’。 读到xls行尾结束返回http。 另外给一下代码链接(太长了放帖子里影响观看),不过是Django,嫌麻烦不看也可以啦~ http://paste.ubuntu.com/8086908/ |