App Node.js que trava após MAX_REQUESTS para demonstrar como o Docker Compose lida com containers que falham.
37 lines
739 B
JavaScript
37 lines
739 B
JavaScript
const http = require("http");
|
|
|
|
const MAX_REQUESTS = Number(process.env.MAX_REQUESTS || 3);
|
|
|
|
let requestCount = 0;
|
|
|
|
console.log("MAX_REQUESTS =", MAX_REQUESTS);
|
|
|
|
const server = http.createServer((req, res) => {
|
|
if (req.url === "/health") {
|
|
if (requestCount > MAX_REQUESTS) {
|
|
// app travado, mas processo vivo
|
|
return;
|
|
}
|
|
|
|
res.writeHead(200);
|
|
res.end(`ok`);
|
|
return;
|
|
}
|
|
|
|
requestCount++;
|
|
console.log("request", requestCount);
|
|
|
|
if (requestCount > MAX_REQUESTS) {
|
|
console.log(`🔥 App travado após ${MAX_REQUESTS} requests`);
|
|
return;
|
|
}
|
|
|
|
res.writeHead(200);
|
|
res.end(`Req -> ${requestCount}/${MAX_REQUESTS}`);
|
|
});
|
|
|
|
server.listen(3000, () => {
|
|
console.log("App rodando na porta 3000");
|
|
});
|
|
|