create a job for update labels in library item

This commit is contained in:
Hongbo Wu
2024-01-31 13:32:37 +08:00
parent ddddf8234e
commit 5ed35bbeff
6 changed files with 103 additions and 33 deletions

View File

@ -17,10 +17,7 @@ import {
import { THUMBNAIL_JOB } from '../jobs/find_thumbnail'
import { queueRSSRefreshFeedJob } from '../jobs/rss/refreshAllFeeds'
import { TriggerRuleJobData, TRIGGER_RULE_JOB_NAME } from '../jobs/trigger_rule'
import {
UpdateLabelsInLibraryItemData,
UPDATE_LABELS_IN_LIBRARY_ITEM_JOB,
} from '../jobs/update_db'
import { UpdateLabelsData, UPDATE_LABELS_JOB } from '../jobs/update_db'
import { getBackendQueue } from '../queue-processor'
import { redisDataSource } from '../redis_data_source'
import { signFeatureToken } from '../services/features'
@ -664,17 +661,25 @@ export const enqueueTriggerRuleJob = async (data: TriggerRuleJobData) => {
})
}
export const enqueueUpdateLabelsInLibraryItem = async (
data: UpdateLabelsInLibraryItemData
) => {
export const bulkEnqueueUpdateLabels = async (data: UpdateLabelsData[]) => {
const queue = await getBackendQueue()
if (!queue) {
return undefined
}
return queue.add(UPDATE_LABELS_IN_LIBRARY_ITEM_JOB, data, {
priority: 1,
})
const jobs = data.map((d) => ({
name: UPDATE_LABELS_JOB,
data: d,
opts: {
priority: 1,
},
}))
try {
return queue.addBulk(jobs)
} catch (error) {
logger.error('error enqueuing update labels jobs', error)
}
}
export default createHttpTaskWithToken