问题描述
目前有一个需求,需求中涉及一个比较耗时的操作,这时候产生了两种方案,请各位大佬指导一下。
-
这个请求大概耗时在20秒左右,发起请求后前端一直转圈圈等待返回。 质疑点:当大量用户进来后,http的连接数限制,会不会被hold住,后面的服务器请求一直等待排队。
-
设计两个请求,并且在缓存中设置一个标志量,第一个请求进来触发耗时操作,并且立即返回前端”处理中“状态,然后在前端加新的轮询请求,请求缓存中的标志量,返回第一个请求的操作结果,这样可以及时释放http请求, 质疑点:前端要多好几次轮询开销,而且如果轮询间隔时间不合适,体验也会变差。
大佬们给一下意见?希望能从nodejs和java对比一下,那种更合适处理这种场景。