add a REST API to trigger the expire folder job

This commit is contained in:
Hongbo Wu
2024-06-13 17:57:29 +08:00
parent 6f496b9336
commit 88e3d648c8
15 changed files with 115 additions and 160 deletions

View File

@ -28,9 +28,8 @@ import {
import { BulkActionData, BULK_ACTION_JOB_NAME } from '../jobs/bulk_action'
import { CallWebhookJobData, CALL_WEBHOOK_JOB_NAME } from '../jobs/call_webhook'
import { SendEmailJobData, SEND_EMAIL_JOB } from '../jobs/email/send_email'
import { EXPIRE_FOLDERS_JOB_NAME } from '../jobs/expire_folders'
import { THUMBNAIL_JOB } from '../jobs/find_thumbnail'
import { EXPIRE_FOLDER_JOB_NAME } from '../jobs/folder/expire'
import { EXPIRE_ALL_FOLDERS_JOB_NAME } from '../jobs/folder/expire_all'
import { GENERATE_PREVIEW_CONTENT_JOB } from '../jobs/generate_preview_content'
import { EXPORT_ALL_ITEMS_JOB_NAME } from '../jobs/integration/export_all_items'
import {
@ -116,8 +115,7 @@ export const getJobPriority = (jobName: string): number => {
case THUMBNAIL_JOB:
case GENERATE_PREVIEW_CONTENT_JOB:
case PRUNE_TRASH_JOB:
case EXPIRE_ALL_FOLDERS_JOB_NAME:
case EXPIRE_FOLDER_JOB_NAME:
case EXPIRE_FOLDERS_JOB_NAME:
return 100
default:
@ -1076,42 +1074,20 @@ export const enqueuePruneTrashJob = async (numDays: number) => {
)
}
export const enqueueExpireAllFoldersJob = async () => {
export const enqueueExpireFoldersJob = async () => {
const queue = await getBackendQueue()
if (!queue) {
return undefined
}
return queue.add(
EXPIRE_ALL_FOLDERS_JOB_NAME,
EXPIRE_FOLDERS_JOB_NAME,
{},
{
jobId: `${EXPIRE_ALL_FOLDERS_JOB_NAME}_${JOB_VERSION}`,
jobId: `${EXPIRE_FOLDERS_JOB_NAME}_${JOB_VERSION}`,
removeOnComplete: true,
removeOnFail: true,
priority: getJobPriority(EXPIRE_ALL_FOLDERS_JOB_NAME),
attempts: 1,
}
)
}
export const enqueueExpireFolderJob = async (
userId: string,
folderPolicyId: string
) => {
const queue = await getBackendQueue()
if (!queue) {
return undefined
}
return queue.add(
EXPIRE_FOLDER_JOB_NAME,
{ userId, folderPolicyId },
{
jobId: `${EXPIRE_FOLDER_JOB_NAME}_${folderPolicyId}_${JOB_VERSION}`,
removeOnComplete: true,
removeOnFail: true,
priority: getJobPriority(EXPIRE_FOLDER_JOB_NAME),
priority: getJobPriority(EXPIRE_FOLDERS_JOB_NAME),
attempts: 3,
}
)