Kel*_*vin 2 scheduler amazon-ec2 mongodb node.js
我正在使用议程运行节点调度程序.它运行良好约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]]
Run Code Online (Sandbox Code Playgroud)
我正在使用部署在EC2实例上的mongo db的节点js.
我写的代码在这里:
https://github.com/kelvinblade/bluesky-scheduler2
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
当打开太多文件描述符时发生EMFILE,因为对于要由进程打开的描述符的数量,在操作系统中存在限制.您可以通过编辑此文件/etc/sysctl.conf来重置此限制,或者更优雅的方法是使用一些需要注意的模块并使用连接池来监视打开的文件描述符.您可以尝试node-graceful-fs或filequeue Git source:
https://github.com/isaacs/node-graceful-fs
https://github.com/treygriffith/filequeue.git
Run Code Online (Sandbox Code Playgroud)
安装适当的节点模块
npm install node-graceful-fs
or
npm install filequeue
Run Code Online (Sandbox Code Playgroud)
并将你的fs从默认值替换为
var fs = require('graceful-fs')
or
var fs = new FileQueue(100);
Run Code Online (Sandbox Code Playgroud)
我个人觉得文件队列是更好的排队系统.
| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |