def enqueue_task(self, task):
data = dumps(task)<EOL>if self._async:<EOL><INDENT>self.publisher_client.publish(self.topic_path, data=data)<EOL>logger.info('<STR_LIT>'.format(task.id))<EOL><DEDENT>else:<EOL><INDENT>unpickled_task = unpickle(data)<EOL>logger.info(<EOL>'<STR_LIT>'.format(unpickled_task.id)<EOL>)<EOL>with measure_time() as summary, self.queue_context():<EOL><INDENT>unpickled_task.execute(queue=self)<EOL>summary(unpickled_task.summary())<EOL><DEDENT><DEDENT>return TaskResult(task.id, self)<EOL>
Enqueues a task directly. This is used when a task is retried or if
        a task was manually created.

        Note that this does not store the task.