关于nodejs,double callback和callback丢失的几率问题。
实际场景: 执行批处理,采用async.js,顺序调度任务,任务中并发调度任务mysql,http.request,基本执行到60多万个任务的时候会发生一次callback丢失,2次 double callback。
改进: 采用pool调度任务,错误产生,重新压入队列,callback丢失则消耗一个pool池数量,100个开启,容错能力提高。
技术选型: 大量任务执行,终于体会到erlang设计允许失败思想的先进,并发处理模型上我的知识面还没接触到erlang更可靠的并发构架。 后期实时高并发计算,严谨逻辑需求的部分还是要迁入erlang。数据要求严谨的部分,可以记录执行状态,继续采用node,node的库太多,节省了大量时间。
1 回复
批处理的时候,限制并发数没有?