Skip to content

Latest commit

 

History

History
48 lines (41 loc) · 1.36 KB

remove-dependency.md

File metadata and controls

48 lines (41 loc) · 1.36 KB

Remove Dependency

In some situations, you may have a parent job and need to remove the relationship when one of its children fail.

The pattern to solve this requirement consists on using the onChildFailure option as remove. This option will make sure that when a job fails, the dependency is removed from the parent, so the parent will complete without waiting for the failed children.

const flow = new FlowProducer({ connection });

const originalTree = await flow.add({
  name: 'root-job',
  queueName: 'topQueueName',
  data: {},
  children: [
    {
      name,
      data: { idx: 0, foo: 'bar' },
      queueName: 'childrenQueueName',
      opts: { onChildFailure: 'remove' },
      children: [
        {
          name,
          data: { idx: 1, foo: 'bah' },
          queueName: 'grandChildrenQueueName',
        },
        {
          name,
          data: { idx: 2, foo: 'baz' },
          queueName: 'grandChildrenQueueName',
        },
      ],
    },
    {
      name,
      data: { idx: 3, foo: 'foo' },
      queueName: 'childrenQueueName',
    },
  ],
});

{% hint style="info" %} As soon as a child with this option fails, the parent job will be moved to a waiting state only if there are no more pending children. {% endhint %}

Read more: