code: func (d *Dispatcher) tqTask(task *Task) (*taskqueue.Task, string, error) {
  	handler, err := d.handler(task.Payload)
  	if err != nil {
  		return nil, "", err
  	}
  
  	blob, err := serializePayload(task.Payload)
  	if err != nil {
  		return nil, "", err
  	}
  
  	title := handler.typeName
  	if task.Title != "" {
  		title = task.Title
  	}
  
  	retryOpts := handler.retryOpts
  	if task.RetryOptions != nil {
  		retryOpts = task.RetryOptions
  	}
  
  	return &taskqueue.Task{
  		Path:         fmt.Sprintf("%s%s/%s", d.baseURL(), handler.queue, title),
  		Name:         task.Name(),
  		Method:       "POST",
  		Payload:      blob,
  		ETA:          task.ETA,
  		Delay:        task.Delay,
  		RetryOptions: retryOpts,
  	}, handler.queue, nil
  }
docs: // tqTask constructs task queue task struct.