docs: function _getMessageConsumer(channel, handle, validate, routingKey) {
      return function* _consumeMessage(message) {
        try {
          logger.debug({ message, routingKey }, '[worker#listen] received message');
  
          const content = _parseMessage(message);
          if (!content) return channel.ack(message);
  
          const validatedContent = _validateMessage(validate, content);
          if (_.isError(validatedContent)) return channel.ack(message);
  
          const handleSuccess = yield _handleMessage(
            handle,
            validatedContent || content,
            message.fields
          );
          if (!handleSuccess) return channel.nack(message);
          return channel.ack(message);
        } catch (err) {
          logger.error({ err, routingKey }, '[worker#listen] failed to ack/nack');
          return null;
        }
      };
    }