我是NodeJS的新手,正在使用ff软件包:
有关示例代码和更多信息,请check this link。
我注意到,如果我只有一个简单的seneca侦听器脚本(RPC),仅具有rabbitMQ连接,没有猫鼬连接,则该侦听器脚本会在RabbitMQ死后死去。这是因为千变万化的塞内卡发出了一个“杀死”信号,这对我来说还可以。我希望侦听器脚本在与RabbitMQ断开连接时死亡。 但是,如果seneca侦听器脚本(RPC)具有RabbitMQ和猫鼬连接,并且RabbitMQ死了,则侦听器脚本仍会启动并运行。猫鼬以某种方式保持了连接或脚本的正常运行。
请参见以下输出:
INFO [2019-03-21T06:37:23.934Z](mylaptop上为27933):工人初始化了...
INFO [2019-03-21T06:37:33.382Z](mylaptop上为27933):-正在执行SIGINT侦听器...
INFO [2019-03-21T06:37:33.384Z](mylaptop上为27933):正在关闭数据库连接。
INFO [2019-03-21T06:37:33.387Z](mylaptop上为27933):关闭消息代理。
INFO [2019-03-21T06:37:33.388Z](mylaptop上为27933):消息代理已关闭。
INFO [2019-03-21T06:37:33.389Z](mylaptop上为27933):数据库连接已关闭。
INFO [2019-03-21T06:37:33.391Z](mylaptop上为27933):优美的退出已完成。
终止过程...
INFO [2019-03-21T06:37:33.391Z](在mylaptop上为27933):-正在执行退出监听器...
INFO [2019-03-21T06:37:33.391Z](在mylaptop上为27933):正在关闭数据库连接。
INFO [2019-03-21T06:37:33.392Z](mylaptop上为27933):数据库连接已关闭。
INFO [2019-03-21T06:37:33.392Z](mylaptop上为27933):关闭消息代理。
INFO [2019-03-21T06:37:33.392Z](mylaptop上为27933):消息代理已关闭。
如您所见,我触发了Ctrl + C(SIGINT),因为侦听器脚本确实响应了RabbitMQ关闭,但是您还可以看到-- Executing exit listener...
-seneca的退出信号-已经在NodeJS的事件循环,但是不知道NodeJS优先执行该事件吗?
我想知道为什么吗?有没有一种方法可以绕过这个问题,并优先处理来自Seneca的“杀死”信号。
谢谢。