gpt4 book ai didi

node.js - Node 议程调度器 Mongo errno : 20, 代码: 'EMFILE'

转载 作者:可可西里 更新时间:2023-11-01 09:59:05 24 4
gpt4 key购买 nike

我正在使用议程运行 Node 调度程序。它运行正常大约 30 分钟,然后开始显示此错误。

{ [Error: EMFILE, open 'log/scheduler.log'] errno: 20, code: 'EMFILE', path: 'log/scheduler.log' }
{ [Error: EMFILE, open 'log/scheduler.log'] errno: 20, code: 'EMFILE', path: 'log/scheduler.log' }
[Error: failed to connect to [localhost:27017]]
[Error: failed to connect to [localhost:27017]]
[Error: failed to connect to [localhost:27017]]
[Error: failed to connect to [localhost:27017]]
[Error: failed to connect to [localhost:27017]]

我正在使用 node js 和部署在 EC2 实例上的 mongo db。

我写的代码在这里:

https://github.com/kelvinblade/bluesky-scheduler2

如有任何帮助,我们将不胜感激。

最佳答案

当打开太多文件描述符时会出现 EMFILE,因为操作系统对进程打开的描述符数量有限制。您可以通过编辑此文件来重置此限制/etc/sysctl.conf或者更优雅的方法是使用一些模块来照顾并有一个连接池来监视打开的文件描述符。您可以尝试 node-graceful-fs 或 filequeueGit 来源:

 https://github.com/isaacs/node-graceful-fs

https://github.com/treygriffith/filequeue.git

安装适当的 Node 模块

     npm install node-graceful-fs
or
npm install filequeue

并将您的 fs 从默认值替换为

  var fs = require('graceful-fs')
or
var fs = new FileQueue(100);

我个人觉得 filequeue 是更好的排队系统。

关于node.js - Node 议程调度器 Mongo errno : 20, 代码: 'EMFILE',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29005994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com