docs: def to_task(self):
          """Return a task object representing this async job."""
          from google.appengine.api.taskqueue import Task
          from google.appengine.api.taskqueue import TaskRetryOptions
  
          self._increment_recursion_level()
          self.check_recursion_depth()
  
          url = "%s/%s" % (ASYNC_ENDPOINT, self.function_path)
  
          kwargs = {
              'url': url,
              'headers': self.get_headers().copy(),
              'payload': json.dumps(self.to_dict())
          }
          kwargs.update(copy.deepcopy(self.get_task_args()))
  
          # Set task_retry_limit
          retry_options = copy.deepcopy(DEFAULT_RETRY_OPTIONS)
          retry_options.update(kwargs.pop('retry_options', {}))
          kwargs['retry_options'] = TaskRetryOptions(**retry_options)
  
          return Task(**kwargs)