diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2021-10-16 17:16:24 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-16 17:16:24 +0900 |
| commit | 482081c41b45ab3798e73c4d11e8a7c1c1f5e8c9 (patch) | |
| tree | fed02348c2fce534f8101370853eb83fbf3aa899 /src/queue/processors | |
| parent | テスト用コンテナの調整 (#7838) (diff) | |
| download | sharkey-482081c41b45ab3798e73c4d11e8a7c1c1f5e8c9.tar.gz sharkey-482081c41b45ab3798e73c4d11e8a7c1c1f5e8c9.tar.bz2 sharkey-482081c41b45ab3798e73c4d11e8a7c1c1f5e8c9.zip | |
Refactor request (#7814)
* status code
* Test ap-request.ts
https://github.com/mei23/crytest/blob/4397fc5e70536e4175fe56e974ca83b8047bef3a/test/ap-request.ts
* tune
Diffstat (limited to 'src/queue/processors')
| -rw-r--r-- | src/queue/processors/deliver.ts | 7 | ||||
| -rw-r--r-- | src/queue/processors/inbox.ts | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/queue/processors/deliver.ts b/src/queue/processors/deliver.ts index 373e57cbd5..3c61896a2f 100644 --- a/src/queue/processors/deliver.ts +++ b/src/queue/processors/deliver.ts @@ -11,6 +11,7 @@ import { toPuny } from '@/misc/convert-host'; import { Cache } from '@/misc/cache'; import { Instance } from '@/models/entities/instance'; import { DeliverJobData } from '../types'; +import { StatusError } from '@/misc/fetch'; const logger = new Logger('deliver'); @@ -68,16 +69,16 @@ export default async (job: Bull.Job<DeliverJobData>) => { registerOrFetchInstanceDoc(host).then(i => { Instances.update(i.id, { latestRequestSentAt: new Date(), - latestStatus: res != null && res.hasOwnProperty('statusCode') ? res.statusCode : null, + latestStatus: res instanceof StatusError ? res.statusCode : null, isNotResponding: true }); instanceChart.requestSent(i.host, false); }); - if (res != null && res.hasOwnProperty('statusCode')) { + if (res instanceof StatusError) { // 4xx - if (res.statusCode >= 400 && res.statusCode < 500) { + if (res.isClientError) { // HTTPステータスコード4xxはクライアントエラーであり、それはつまり // 何回再送しても成功することはないということなのでエラーにはしないでおく return `${res.statusCode} ${res.statusMessage}`; diff --git a/src/queue/processors/inbox.ts b/src/queue/processors/inbox.ts index e2c271cdf8..4032ce8653 100644 --- a/src/queue/processors/inbox.ts +++ b/src/queue/processors/inbox.ts @@ -14,6 +14,7 @@ import { InboxJobData } from '../types'; import DbResolver from '@/remote/activitypub/db-resolver'; import { resolvePerson } from '@/remote/activitypub/models/person'; import { LdSignature } from '@/remote/activitypub/misc/ld-signature'; +import { StatusError } from '@/misc/fetch'; const logger = new Logger('inbox'); @@ -53,7 +54,7 @@ export default async (job: Bull.Job<InboxJobData>): Promise<string> => { authUser = await dbResolver.getAuthUserFromApId(getApId(activity.actor)); } catch (e) { // 対象が4xxならスキップ - if (e.statusCode >= 400 && e.statusCode < 500) { + if (e instanceof StatusError && e.isClientError) { return `skip: Ignored deleted actors on both ends ${activity.actor} - ${e.statusCode}`; } throw `Error in actor ${activity.actor} - ${e.statusCode || e}`; |