我们有一个 Node.js 脚本,每分钟运行一次来检查应用程序的状态。通常情况下,它工作得很好。如果服务启动,则以 0 退出。如果服务关闭,则以 1 退出。一切正常。
但每隔一段时间,它就会停下来。控制台报告“正在调用状态 API...”并无限期地停止在那里。它甚至不会在 Node 内置的两分钟超时时超时。没有错误,什么都没有。它只是坐在那里,等待,永远。这是一个问题,因为它会阻止以下状态检查作业的运行。
此时,我的整个团队都已经研究过它,但我们都无法弄清楚什么情况会导致它挂起。我们建立了从开始到结束的超时,以便我们可以继续下一个工作,但这本质上会跳过状态检查并产生盲点。所以,我向你们好人提出这个问题。
这是脚本(删除了名称/网址):
#!/usr/bin/env node
// SETTINGS: -------------------------------------------------------------------------------------------------
/** URL to contact for status information. */
const STATUS_API = process.env.STATUS_API;
/** Number of attempts to make before reporting as a failure. */
const ATTEMPT_LIMIT = 3;
/** Amount of time to wait before starting another attempt, in milliseconds. */
const ATTEMPT_DELAY = 5000;
// RUNTIME: --------------------------------------------------------------------------------------------------
const URL = require('url');
const https = require('https');
// Make the first attempt.
make_attempt(1, …Run Code Online (Sandbox Code Playgroud)