Removing jobs
Source URL: https://docs.bullmq.io/guide/jobs/removing-job
Removing jobs
Section titled “Removing jobs”Sometimes it is necessary to remove a job. For example, there could be a job that has bad data.
{% tabs %} {% tab title=“TypeScript” %}
import { Queue } from 'bullmq';
const queue = new Queue('paint');
const job = await queue.add('wall', { color: 1 });
await job.remove();{% endtab %}
{% tab title=“Python” %}
from bullmq import Queue
queue = Queue('paint')
job = await queue.add('wall', {'color': 1})
await job.remove(){% endtab %} {% endtabs %}
{% hint style=“warning” %} Locked jobs (in active state) can not be removed. An error will be thrown. {% endhint %}
Having a parent job
Section titled “Having a parent job”There are 2 possible cases:
- There are not pending dependencies; in this case the parent is moved to wait status, we may try to process this job.
- There are pending dependencies; in this case the parent is kept in waiting-children status.
{% hint style=“info” %}
Take into consideration that processed values will be kept in processed hset from the parent if this child is in completed state at the time when it’s removed.
{% endhint %}
Having pending dependencies
Section titled “Having pending dependencies”We may try to remove all its pending descendants first.
{% hint style=“warning” %} If any of the children are locked, the deletion process will be stopped. {% endhint %}