aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared-server/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/shared-server/src')
-rw-r--r--packages/shared-server/src/queues.ts25
1 files changed, 19 insertions, 6 deletions
diff --git a/packages/shared-server/src/queues.ts b/packages/shared-server/src/queues.ts
index a666446e..813b9c3b 100644
--- a/packages/shared-server/src/queues.ts
+++ b/packages/shared-server/src/queues.ts
@@ -67,21 +67,34 @@ export const SearchIndexingQueue =
keepFailedJobs: false,
});
-// Tidy Assets Worker
+// Admin maintenance worker
export const zTidyAssetsRequestSchema = z.object({
cleanDanglingAssets: z.boolean().optional().default(false),
syncAssetMetadata: z.boolean().optional().default(false),
});
export type ZTidyAssetsRequest = z.infer<typeof zTidyAssetsRequestSchema>;
-export const TidyAssetsQueue = QUEUE_CLIENT.createQueue<ZTidyAssetsRequest>(
- "tidy_assets_queue",
- {
+
+export const zAdminMaintenanceTaskSchema = z.discriminatedUnion("type", [
+ z.object({
+ type: z.literal("tidy_assets"),
+ args: zTidyAssetsRequestSchema,
+ }),
+]);
+
+export type ZAdminMaintenanceTask = z.infer<typeof zAdminMaintenanceTaskSchema>;
+export type ZAdminMaintenanceTaskType = ZAdminMaintenanceTask["type"];
+export type ZAdminMaintenanceTidyAssetsTask = Extract<
+ ZAdminMaintenanceTask,
+ { type: "tidy_assets" }
+>;
+
+export const AdminMaintenanceQueue =
+ QUEUE_CLIENT.createQueue<ZAdminMaintenanceTask>("admin_maintenance_queue", {
defaultJobArgs: {
numRetries: 1,
},
keepFailedJobs: false,
- },
-);
+ });
export async function triggerSearchReindex(
bookmarkId: string,