node-modules / graceful Goto Github PK
View Code? Open in Web Editor NEWGraceful exit when `uncaughtException` emit, base on `process.on('uncaughtException')`.
Graceful exit when `uncaughtException` emit, base on `process.on('uncaughtException')`.
I want to call res.end()
to return the response to the browser client when handling an uncaughtException
event
@fengmk2 最近我在学习 Express 的错误处理方面的内容,了解到 graceful 与 domain-middleware。比较了下两者的源代码,大体上的逻辑是一样的,唯一的区别是 domain-middleware 对当前出错的请求可以返回一个信息,但是我在 graceful 中没有找到,这个应该是基于 process.on('uncaughtException') 的解决方案的一个缺陷吧(希望我没有遗漏)。如果说想把这个缺陷填补上,还有别的办法吗?不知道阿里这边是怎么解决的?
https://github.com/node-modules/graceful/blob/master/index.js#LL122C3-L122C9
2023-05-03 21:50:56,921 ERROR 3873346 [-/127.0.0.1/6f008500-e9b9-11ed-977e-775c5ef9fd68/41033.026ms SCHEDULE /__schedule?path=/home/admin/application/app/port/schedule/SyncPackageWorker.js&interval=1000&type=all&env=&disable=false&immediate=false] nodejs.TypeError: Cannot read properties of undefined (reading 'on') (uncaughtException throw 4 times on pid:3873346)
at duplex (/home/admin/application/node_modules/[email protected]@duplexer/index.js:31:12)
at Object.module.exports (/home/admin/application/node_modules/[email protected]@stream-combiner/index.js:8:17)
at childrenOfPid (/home/admin/application/node_modules/[email protected]@ps-tree/index.js:50:6)
at killChildren (/home/admin/application/node_modules/[email protected]@graceful/index.js:122:3)
at Timeout._onTimeout (/home/admin/application/node_modules/[email protected]@graceful/index.js:67:9)
at listOnTimeout (node:internal/timers:573:17)
at processTimers (node:internal/timers:514:7)
pid: 3873346
2023-05-03 21:50:56,922 ERROR 3873346 [-/127.0.0.1/6f008500-e9b9-11ed-977e-775c5ef9fd68/41034.085ms SCHEDULE /__schedule?path=/home/admin/application/app/port/schedule/SyncPackageWorker.js&interval=1000&type=all&env=&disable=false&immediate=false] nodejs.EMFILEError: spawn ps EMFILE (uncaughtException throw 5 times on pid:3873346)
at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19)
at onErrorNT (node:internal/child_process:483:16)
at processTicksAndRejections (node:internal/process/task_queues:82:21)
errno: -24
code: "EMFILE"
syscall: "spawn ps"
path: "ps"
spawnargs: ["-A","-o","ppid,pid,stat,comm"]
name: "EMFILEError"
pid: 3873346
graceful({
server: [app, hsf, rest],
killTimeout: 30000,
});
http.js will keepalive the connection: https://github.com/joyent/node/blob/master/lib/http.js#L619
We need to set Connection: close
header.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.