summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/backend/src/queue/QueueProcessorService.ts12
-rw-r--r--packages/backend/src/queue/processors/InboxProcessorService.ts14
2 files changed, 22 insertions, 4 deletions
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index eaeb6d58df..f130314e74 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -10,6 +10,7 @@ import type { Config } from '@/config.js';
import { DI } from '@/di-symbols.js';
import type Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
+import { StatusError } from '@/misc/status-error.js';
import { UserWebhookDeliverProcessorService } from './processors/UserWebhookDeliverProcessorService.js';
import { SystemWebhookDeliverProcessorService } from './processors/SystemWebhookDeliverProcessorService.js';
import { EndedPollNotificationProcessorService } from './processors/EndedPollNotificationProcessorService.js';
@@ -132,7 +133,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
// 何故かeがundefinedで来ることがある
if (!e) return '?';
- if (e instanceof Bull.UnrecoverableError || e.name === 'AbortError') {
+ if (e instanceof Bull.UnrecoverableError || e.name === 'AbortError' || e instanceof StatusError) {
return `${e.name}: ${e.message}`;
}
@@ -146,12 +147,15 @@ export class QueueProcessorService implements OnApplicationShutdown {
function renderJob(job?: Bull.Job) {
if (!job) return '?';
- return {
- name: job.name || undefined,
+ const info: Record<string, string> = {
info: getJobInfo(job),
- failedReason: job.failedReason || undefined,
data: job.data,
};
+
+ if (job.name) info.name = job.name;
+ if (job.failedReason) info.failedReason = job.failedReason;
+
+ return info;
}
//#region system
diff --git a/packages/backend/src/queue/processors/InboxProcessorService.ts b/packages/backend/src/queue/processors/InboxProcessorService.ts
index 102e835e24..260ebe0d40 100644
--- a/packages/backend/src/queue/processors/InboxProcessorService.ts
+++ b/packages/backend/src/queue/processors/InboxProcessorService.ts
@@ -7,6 +7,7 @@ import { URL } from 'node:url';
import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';
import httpSignature from '@peertube/http-signature';
import * as Bull from 'bullmq';
+import { AbortError } from 'node-fetch';
import type Logger from '@/logger.js';
import { FederatedInstanceService } from '@/core/FederatedInstanceService.js';
import { FetchInstanceMetadataService } from '@/core/FetchInstanceMetadataService.js';
@@ -232,6 +233,19 @@ export class InboxProcessorService implements OnApplicationShutdown {
return e.message;
}
}
+
+ if (e instanceof StatusError) {
+ if (e.isRetryable) {
+ return `temporary error ${e.statusCode}`;
+ } else {
+ return `skip: permanent error ${e.statusCode}`;
+ }
+ }
+
+ if (e instanceof AbortError) {
+ return 'request aborted';
+ }
+
throw e;
}
return 'ok';