diff options
author | Chocobozzz <me@florianbigard.com> | 2022-06-16 14:29:53 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-06-16 14:29:53 +0200 |
commit | 3256771725430ab6fc716e937b88ca2b2b85263b (patch) | |
tree | 5ab8e20c9646740cd12151592541af6997ca6d63 /server/lib/job-queue/job-queue.ts | |
parent | 0c9a83546687d2ae80b3f5299a8ee59d741f894f (diff) | |
download | PeerTube-3256771725430ab6fc716e937b88ca2b2b85263b.tar.gz PeerTube-3256771725430ab6fc716e937b88ca2b2b85263b.tar.zst PeerTube-3256771725430ab6fc716e937b88ca2b2b85263b.zip |
More robust move to object storage job failure
Diffstat (limited to 'server/lib/job-queue/job-queue.ts')
-rw-r--r-- | server/lib/job-queue/job-queue.ts | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/server/lib/job-queue/job-queue.ts b/server/lib/job-queue/job-queue.ts index d3776c3bf..61e41fb0f 100644 --- a/server/lib/job-queue/job-queue.ts +++ b/server/lib/job-queue/job-queue.ts | |||
@@ -33,7 +33,7 @@ import { refreshAPObject } from './handlers/activitypub-refresher' | |||
33 | import { processActorKeys } from './handlers/actor-keys' | 33 | import { processActorKeys } from './handlers/actor-keys' |
34 | import { processEmail } from './handlers/email' | 34 | import { processEmail } from './handlers/email' |
35 | import { processManageVideoTorrent } from './handlers/manage-video-torrent' | 35 | import { processManageVideoTorrent } from './handlers/manage-video-torrent' |
36 | import { processMoveToObjectStorage } from './handlers/move-to-object-storage' | 36 | import { onMoveToObjectStorageFailure, processMoveToObjectStorage } from './handlers/move-to-object-storage' |
37 | import { processVideoFileImport } from './handlers/video-file-import' | 37 | import { processVideoFileImport } from './handlers/video-file-import' |
38 | import { processVideoImport } from './handlers/video-import' | 38 | import { processVideoImport } from './handlers/video-import' |
39 | import { processVideoLiveEnding } from './handlers/video-live-ending' | 39 | import { processVideoLiveEnding } from './handlers/video-live-ending' |
@@ -86,6 +86,10 @@ const handlers: { [id in JobType]: (job: Job) => Promise<any> } = { | |||
86 | 'video-studio-edition': processVideoStudioEdition | 86 | 'video-studio-edition': processVideoStudioEdition |
87 | } | 87 | } |
88 | 88 | ||
89 | const errorHandlers: { [id in JobType]?: (job: Job, err: any) => Promise<any> } = { | ||
90 | 'move-to-object-storage': onMoveToObjectStorageFailure | ||
91 | } | ||
92 | |||
89 | const jobTypes: JobType[] = [ | 93 | const jobTypes: JobType[] = [ |
90 | 'activitypub-follow', | 94 | 'activitypub-follow', |
91 | 'activitypub-http-broadcast', | 95 | 'activitypub-http-broadcast', |
@@ -159,6 +163,11 @@ class JobQueue { | |||
159 | : 'error' | 163 | : 'error' |
160 | 164 | ||
161 | logger.log(logLevel, 'Cannot execute job %d in queue %s.', job.id, handlerName, { payload: job.data, err }) | 165 | logger.log(logLevel, 'Cannot execute job %d in queue %s.', job.id, handlerName, { payload: job.data, err }) |
166 | |||
167 | if (errorHandlers[job.name]) { | ||
168 | errorHandlers[job.name](job, err) | ||
169 | .catch(err => logger.error('Cannot run error handler for job failure %d in queue %s.', job.id, handlerName, { err })) | ||
170 | } | ||
162 | }) | 171 | }) |
163 | 172 | ||
164 | queue.on('error', err => { | 173 | queue.on('error', err => { |