execute = async (funcLogger, symbol, jobPayload = {}) => {
  const logger = funcLogger.child({ helper: 'queue' });

  // Use chain of responsibilities pattern to handle the job execution.
  // eslint-disable-next-line no-restricted-syntax
  for (const executeFn of [prepareJob, executeJob, completeJob]) {
    // eslint-disable-next-line no-await-in-loop
    const result = await executeFn(logger, symbol, jobPayload);

    if (result) {
      logger.info({ symbol }, 'Queue job execution completed.');
      break;
    }
  }
}
Execute queue or preprocessFn

@param {*} funcLogger
@param {*} symbol
@param {*} jobPayload