code: func (d *Dispatcher) DeleteTask(c context.Context, tasks ...*Task) error {
  	return d.runBatchesPerQueue(c, tasks, func(c context.Context, queue string, tasks []*taskqueue.Task) error {
  		return errors.FilterFunc(taskqueue.Delete(c, queue, tasks...), func(err error) bool {
  			// Currently, the best way to detect an attempt to delete an unknown task
  			// is to check the string with tolerable error message phrases.
  			for _, phrase := range []string{"UNKNOWN_TASK", "TOMBSTONED_TASK"} {
  				if strings.Contains(err.Error(), phrase) {
  					return true
  				}
  			}
  			return false
  		})
  	})
  }
docs: // DeleteTask deletes the specified tasks from their queues.
  //
  // If the given context is transactional or namespaced, inherits the
  // transaction/namespace. Note if running outside of a transaction and multiple
  // tasks are passed, the operation is not atomic: it returns an error if at
  // least one enqueue operation failed (there's no way to figure out which one
  // exactly).
  //
  // Returns only transient errors. Unlike regular Task Queue's Delete,
  // attempts to delete an unknown or tombstoned task are not considered errors.