Я чувствую, что вам следует использовать API Bull, чтобы проверить, выполняется задание или нет, тогда вы решаете, добавите ли задание в очередь, если нет (исправление для производителя).
Вы также можете решитьпроверить, выполняется ли уже подобное задание, когда вы запускаете задание (внутри функции процесса), и выполнить досрочное возвращение вместо выполнения задания (исправление для потребителя).
Вы можете использовать очередь getJobsФункция для этого:
getJobs(types: string[], start?: number, end?: number, asc?: boolean):Promise<Job[]>
"Returns a promise that will return an array of job instances of the given types. Optional parameters for range and ordering are provided."
Из документации: https://github.com/OptimalBits/bull/blob/develop/REFERENCE.md#queuegetjobs
Элемент Job должен содержать достаточно данных, чтобы вы могли найти тот, который ищете.