def _execute(self):
        """Invoke the lifecycle methods for a message
        (prepare, process, on_finish), yielding if any are coroutines.

        """
        for call in (self.prepare, self.process, self.on_finish):
            self.logger.debug('Invoking %r', call)
            result = call()
            if concurrent.is_future(result):
                yield result
Invoke the lifecycle methods for a message
        (prepare, process, on_finish), yielding if any are coroutines.