Commit a8248245 authored by nanahira's avatar nanahira

add retry

parent 5d1fd754
Pipeline #250 passed with stages
in 1 minute and 15 seconds
......@@ -26,6 +26,7 @@ testDomains:
- ygobbs.com # Testing sources.
- nanahira.momobako.com
timeout: 10000
retryCount: 3
cronString: "0 * * * * *"
```
......@@ -11,4 +11,5 @@ testDomains:
- ygobbs.com # Testing sources.
- nanahira.momobako.com
timeout: 10000
retryCount: 3
cronString: "0 * * * * *"
......@@ -16,6 +16,7 @@ interface Config {
cdnRecords: CDNRecord[];
testDomains: string[];
timeout: number;
retryCount: number;
cronString: string;
}
......@@ -91,23 +92,26 @@ async function getRecords(): Promise<DomainRecordInfo[]> {
async function checkNode(address: string, port: number): Promise<boolean> {
let currentTestDomain: string;
try {
for (let testDomain of config.testDomains) {
currentTestDomain = testDomain;
await axios.get(`https://${address}:${port}`, {
headers: {
Host: testDomain
},
timeout: config.timeout,
validateStatus: status => status < 500
});
for (let i = 1; i <= config.retryCount; ++i) {
try {
for (let testDomain of config.testDomains) {
currentTestDomain = testDomain;
await axios.get(`https://${address}:${port}`, {
headers: {
Host: testDomain
},
timeout: config.timeout,
validateStatus: status => status < 500
});
}
console.log(`Node ${address}:${port} is good.`);
return true;
} catch (e) {
console.log(`Node ${address}:${port} Failed ${i}: ${e.toString()}`);
}
console.log(`Node ${address}:${port} is good.`);
return true;
} catch (e) {
console.log(`Node ${address}:${port} is bad: ${currentTestDomain} => ${e.toString()}`);
return false;
}
console.log(`Node ${address}:${port} is bad.`);
return false;
}
async function checkRecord(recordInfo: DomainRecordInfo) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment