gpt4 book ai didi

javascript - Heroku 'H12' Node JS 应用程序请求超时错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:19 24 4
gpt4 key购买 nike

我在 Heroku 上部署了一个 Node js 应用程序,当我尝试启动它时收到错误 H12 请求超时。不确定我的 app.js 文件有什么问题。我使用 Node、Express 和 ejs 进行模板化。也许我的 GET 方法发生了很多事情。任何有关 H12 错误的帮助将不胜感激。

我的代码:

const express = require("express");
const ejs = require("ejs");
const ping = require('ping');
const app = express();

app.set('view engine', 'ejs');

app.get("/", function(req, res){
var Data = [];
const hosts = [
'8.8.8.8',
'nibbler',
'10.204.2.14',
'nic-bqnbnntkwq.dynamic-m.com',
'co-omaha-wired-qqrrbzpgwq.dynamic-m.com',
'co-austin-cjjbbdqcwq.dynamic-m.com',
'fctx-wired-vtwpbhcgwq.dynamic-m.com',
'172.16.10.1',
'fc-greenwood-dzrrbnzqwq.dynamic-m.com',
'fcpa-3400-wired-nndkzwnrwq.dynamic-m.com',
'fcpa-chrome-gwmjjghjwq.dynamic-m.com',
'fcga-wired-bjkwtcjqwq.dynamic-m.com',
];

for(var i =0; i<hosts.length; i++){
ping.promise.probe(hosts[i]).then(function (resp) {

const destination = ['Azure DC','FC Nevada','Google DNS', 'Austin', 'Omaha',
'FC Greenwood', 'FC Georgia', 'FC Pennsylvania 3500', 'FC Pennsylvania 35400',
'FC Dallas', 'Nibbler DNS', 'NIC'];

if(resp.alive){
const input = {
"Destination": "",
"Host": resp.host,
"Status": "Alive",
"Avg": resp.avg
}
Data.push(input);
}
else {
const input = {
"Destination": "",
"Host": resp.host,
"Status": "Dead",
"Avg": resp.avg
}
Data.push(input);
}
if(Data.length == 12){
Data.sort(function(a, b) {
var A = a.Host.toUpperCase();
var B = b.Host.toUpperCase();
return (A < B) ? -1 : (A > B) ? 1 : 0;
});
for(var i = 0; i<destination.length; i++){
Data[i].Destination = destination[i];
}
res.render("home", {data: Data});
}
});
}
});

app.listen(process.env.PORT || 3000);

最佳答案

H12 表示您的应用需要 30 秒以上才能完成对请求的响应。 https://devcenter.heroku.com/articles/error-codes#h12-request-timeout

对所有这些主机执行 ping 操作很容易需要超过 30 秒的时间。你在开发环境中计时过吗?

在heroku上,长时间运行的任务应该在worker dyno上运行。在这种情况下,工作人员可以定期 ping 这些主机并将结果写入某种数据存储(redis 或 postgres)。 Web 应用程序只需从数据存储中提取结果并呈现页面。

Heroku 这里有一些很好的文档 https://devcenter.heroku.com/articles/node-redis-workers

关于javascript - Heroku 'H12' Node JS 应用程序请求超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57401092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com