check for existing job before enqueueing
This commit is contained in:
@ -5,7 +5,11 @@ import {
|
||||
QueryJustReadFeedArgs,
|
||||
} from '../../generated/graphql'
|
||||
import { getJustReadFeedSections } from '../../jobs/update_just_read_feed'
|
||||
import { enqueueUpdateJustReadFeed } from '../../utils/createTask'
|
||||
import { getJob } from '../../queue-processor'
|
||||
import {
|
||||
enqueueUpdateJustReadFeed,
|
||||
updateJustReadFeedJobId,
|
||||
} from '../../utils/createTask'
|
||||
import { authorized } from '../../utils/gql-utils'
|
||||
|
||||
// This resolver is used to fetch the just read feed for the user.
|
||||
@ -23,6 +27,15 @@ export const justReadFeedResolver = authorized<
|
||||
log.info('Just read feed sections fetched')
|
||||
|
||||
if (sections.length === 0) {
|
||||
const existingJob = await getJob(updateJustReadFeedJobId(uid))
|
||||
if (existingJob) {
|
||||
log.info('Just read feed update job already enqueued')
|
||||
|
||||
return {
|
||||
errorCodes: [JustReadFeedErrorCode.Pending],
|
||||
}
|
||||
}
|
||||
|
||||
await enqueueUpdateJustReadFeed({
|
||||
userId: uid,
|
||||
})
|
||||
|
||||
@ -986,6 +986,9 @@ export const enqueueBulkUploadContentJob = async (
|
||||
return queue.addBulk(jobs)
|
||||
}
|
||||
|
||||
export const updateJustReadFeedJobId = (userId: string) =>
|
||||
`${UPDATE_JUST_READ_FEED_JOB}_${userId}_${JOB_VERSION}`
|
||||
|
||||
export const enqueueUpdateJustReadFeed = async (
|
||||
data: UpdateJustReadFeedJobData
|
||||
) => {
|
||||
@ -995,7 +998,7 @@ export const enqueueUpdateJustReadFeed = async (
|
||||
}
|
||||
|
||||
return queue.add(UPDATE_JUST_READ_FEED_JOB, data, {
|
||||
jobId: `${UPDATE_JUST_READ_FEED_JOB}_${data.userId}_${JOB_VERSION}`,
|
||||
jobId: updateJustReadFeedJobId(data.userId),
|
||||
removeOnComplete: true,
|
||||
removeOnFail: true,
|
||||
priority: getJobPriority(UPDATE_JUST_READ_FEED_JOB),
|
||||
|
||||
Reference in New Issue
Block a user