Fail Parent

In some situations, you may need to fail a job when one of its children fails.

The pattern to solve this requirement consists of using the failParentOnFailure option.

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: { failParentOnFailure: true },
      children: [
        {
          name,
          data: { idx: 1, foo: 'bah' },
          queueName: 'grandChildrenQueueName',
          opts: { failParentOnFailure: true },
        },
        {
          name,
          data: { idx: 2, foo: 'baz' },
          queueName: 'grandChildrenQueueName',
        },
      ],
    },
    {
      name,
      data: { idx: 3, foo: 'foo' },
      queueName: 'childrenQueueName',
    },
  ],
});

As soon as a child with this option fails, the parent job will be moved to the failed state. This option will be validated recursively, so a grandparent could be failed and so on.

Read more:

Last updated

Copyright (c) Taskforce.sh Inc.