From c3344fbd68440d31d9e93fc260980558d6aed00a Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Sat, 9 Mar 2019 08:57:55 +0900 Subject: To retry AP deliver queue (#4457) --- src/queue/processors/deliver.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/queue/processors/deliver.ts') diff --git a/src/queue/processors/deliver.ts b/src/queue/processors/deliver.ts index b561f33181..4cb1cfc6bb 100644 --- a/src/queue/processors/deliver.ts +++ b/src/queue/processors/deliver.ts @@ -7,7 +7,7 @@ import instanceChart from '../../services/chart/instance'; let latest: string = null; -export default async (job: Bull.Job): Promise => { +export default async (job: Bull.Job) => { const { host } = new URL(job.data.to); try { @@ -29,6 +29,8 @@ export default async (job: Bull.Job): Promise => { instanceChart.requestSent(i.host, true); }); + + return 'Success'; } catch (res) { // Update stats registerOrFetchInstanceDoc(host).then(i => { @@ -46,15 +48,19 @@ export default async (job: Bull.Job): Promise => { if (res != null && res.hasOwnProperty('statusCode')) { queueLogger.warn(`deliver failed: ${res.statusCode} ${res.statusMessage} to=${job.data.to}`); + // 4xx if (res.statusCode >= 400 && res.statusCode < 500) { // HTTPステータスコード4xxはクライアントエラーであり、それはつまり // 何回再送しても成功することはないということなのでエラーにはしないでおく - return; + return `${res.statusCode} ${res.statusMessage}`; } - return res.statusMessage; + // 5xx etc. + throw `${res.statusCode} ${res.statusMessage}`; } else { + // DNS error, socket error, timeout ... queueLogger.warn(`deliver failed: ${res} to=${job.data.to}`); + throw res; } } }; -- cgit v1.2.3-freya