当前位置: 首页 > 面试题库 >

发生未捕获的异常时重新启动Node.js应用程序

章博耘
2023-03-14
问题内容

发生异常时,如何重新启动我的应用程序?

process.on('uncaughtException', function(err) {         
  // restart app here
});

问题答案:

您可以将进程作为另一个进程的分支来运行,因此如果它死了,则可以对其进行分支。您将为此使用本机集群模块:

var cluster = require('cluster');
if (cluster.isMaster) {
  cluster.fork();

  cluster.on('exit', function(worker, code, signal) {
    cluster.fork();
  });
}

if (cluster.isWorker) {
  // put your code here
}

代码生成一个工作进程,如果在工作进程中引发错误,它将关闭,并且退出将重新生成另一个工作进程。



 类似资料:
  • 应用程序抛出一个 堆栈跟踪 这个问题似乎已经在spark 1.1中解决了。0根据此链接 火花:1.1。Kafka:0.8。1.1

  • 很难可靠地重试后台任务,该任务会向邮件服务发送请求,以获取最新的电子邮件。一旦成功接收电子邮件,应在阻止-持久化电子邮件中继续执行,但是如果出现异常,我必须重新运行邮件检索,直到成功尝试,成功后应持久化邮件并停止。如果我做错了,请看一看并提出建议。 另外,请看一下我是如何处理选中的异常的,将其包装到中并重新排序-这里的主要思想是在一个块中处理所有异常(已定义的选中异常和运行时异常),而不是将它们记

  • 我想使用sentry跟踪spring boot应用程序的异常。Sentry不会自动捕获异常。但是当我使用

  • 问题内容: (下面的示例代码是独立且可运行的,您可以尝试一下,它不会使系统崩溃:) Tom Hawtin在这里评论了这个问题:为什么人们在事件队列上运行JavaGUI 那: EDT不太可能崩溃。 EDT调度中抛出的未经检查的异常将被捕获,转储并且线程继续运行。 有人可以解释一下这是怎么回事(每次您单击 “引发未经检查的异常” 按钮时,都会有意除以零): 我收到以下消息(这是我期望的): 对我来说,

  • 问题内容: 好,我有问题。如果在处理HTTP请求时发生未捕获的异常,则我没有机会在http.ServerResponse对象上调用end()方法。因此,服务器将永远挂起并且永远不会满足该请求。 这是一个例子: 如果访问/ error,则会发生异常,但会被捕获。用户收到错误消息-没问题。但是,如果我访问/ hang,服务器最终将抛出未捕获的异常并永远挂起。以后对/ hang的任何请求都将挂起。 糟透

  • 问题内容: 为什么Java中的某些异常未被捕获?这是代码由于没有处理的异常而完全失败。(Java版本1.4)。 我得到一个 但这有效 我懂了 我以为捕获异常会捕获所有异常?如何捕获Java中的所有异常? 问题答案: 因为某些异常不是源自-例如和。 基本上,类型层次结构是: 只能抛出派生类,因此,如果您抓住,那实际上就可以抓住一切。 ,以及任何异常,从获得 其他 比那些源自数作为 检查的异常 -他们