mongodb 新手虚心请教大佬们

280 天前
 calmlyman

问题场景: 服务端用 nodejs+mongoose+node-schedule 跑了些定时任务,执行 bulkWrite 操作,代码大概如下:

updateOne: {
  filter: {id: id},
  update: {$set: item},
  upsert: false
}

在某时刻跑太多任务时,mongodb 偶发性会挂掉,出现以下错误:

MongoBulkWriteError: connection 20 to 127.0.0.1:27017 closed

这时我只能临时执行一下systemctl restart mongod命令重启一下就好了,请问大佬们,这是不是写入的数据太多了超过限制呢?是什么原因呢?该如何优化?谢谢!

1979 次点击
所在节点    MongoDB
6 条回复
defunct9
280 天前
开 ssh ,让我上去看看
qloog
280 天前
跑脚本的时候也可以适当的 sleep 个几秒, 让 mongodb 休息下
CivAx
280 天前
@defunct9 ssh 哥永不缺席
CivAx
280 天前
建议优先检查连接池的配置或者 keepalive 参数,有可能是你调的库默认一直在用 reconnect() 而不是开新连接导致某一时段 TTL 到期被杀掉了。
calmlyman
280 天前
@CivAx 谢谢大佬指点,我现在是将定时任务都错开执行,现在出现这个情况减少了
dorothyREN
279 天前
定时任务 加个锁,顺序执行就行了

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

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

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

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

© 2021 V2EX