summaryrefslogtreecommitdiff
path: root/packages/backend/src/queue
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-11-23 10:41:33 +0000
committerdakkar <dakkar@thenautilus.net>2024-11-23 10:41:33 +0000
commit6c13dc04f2d1a7b192d42d5b2a02fddbeb3617c7 (patch)
tree307fcabbac6985abb8d59fa5c16ce021d1c1c7c4 /packages/backend/src/queue
parentfix some lints for frontend (diff)
parentmerge: Move `cypress` to `optionalDependencies` (!697) (diff)
downloadsharkey-6c13dc04f2d1a7b192d42d5b2a02fddbeb3617c7.tar.gz
sharkey-6c13dc04f2d1a7b192d42d5b2a02fddbeb3617c7.tar.bz2
sharkey-6c13dc04f2d1a7b192d42d5b2a02fddbeb3617c7.zip
Merge branch 'develop' into feature/2024.10
Diffstat (limited to 'packages/backend/src/queue')
-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 28a74bbb4a..dd183cd991 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -11,6 +11,7 @@ import { DI } from '@/di-symbols.js';
import type Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
import { CheckModeratorsActivityProcessorService } from '@/queue/processors/CheckModeratorsActivityProcessorService.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';
@@ -134,7 +135,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}`;
}
@@ -148,12 +149,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 f5a356db55..9026331dff 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';
@@ -238,6 +239,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';