diff --git a/packages/backend/server/src/base/job/queue/config.ts b/packages/backend/server/src/base/job/queue/config.ts index 6e5c2e8706..bc852b1ec3 100644 --- a/packages/backend/server/src/base/job/queue/config.ts +++ b/packages/backend/server/src/base/job/queue/config.ts @@ -29,9 +29,15 @@ defineStartupConfig('job', { queue: { prefix: 'affine_job', defaultJobOptions: { - attempts: 3, - removeOnComplete: true, - removeOnFail: false, + attempts: 5, + removeOnComplete: { + age: 3600 /* 1h */, + count: 100, + }, + removeOnFail: { + age: 24 * 3600 /* 1 day */, + count: 500, + }, }, }, worker: {}, diff --git a/packages/backend/server/src/base/job/queue/executor.ts b/packages/backend/server/src/base/job/queue/executor.ts index b0aecbde2c..74863a42a6 100644 --- a/packages/backend/server/src/base/job/queue/executor.ts +++ b/packages/backend/server/src/base/job/queue/executor.ts @@ -121,6 +121,7 @@ export class JobExecutor await this.run(job.name as JobName, job.data); }, { + ...this.config.job.queue, ...this.config.job.worker, connection: this.redis, concurrency, diff --git a/packages/backend/server/src/core/doc/adapters/workspace.ts b/packages/backend/server/src/core/doc/adapters/workspace.ts index 860f28bf6d..a1c35f8e67 100644 --- a/packages/backend/server/src/core/doc/adapters/workspace.ts +++ b/packages/backend/server/src/core/doc/adapters/workspace.ts @@ -106,6 +106,7 @@ export class PgWorkspaceDocStorageAdapter extends DocStorageAdapter { { // keep it simple to let all update merged in one job jobId: `doc:merge-pending-updates:${workspaceId}:${docId}`, + delay: 30 * 1000 /* 30s */, } ); turn++;