func AddMulti(c context.Context, tasks []*Task, queueName string) ([]*Task, error) {
	req := &pb.TaskQueueBulkAddRequest{
		AddRequest: make([]*pb.TaskQueueAddRequest, len(tasks)),
	}
	me, any := make(appengine.MultiError, len(tasks)), false
	for i, t := range tasks {
		req.AddRequest[i], me[i] = newAddReq(c, t, queueName)
		any = any || me[i] != nil
	}
	if any {
		return nil, me
	}
	res := &pb.TaskQueueBulkAddResponse{}
	if err := internal.Call(c, "taskqueue", "BulkAdd", req, res); err != nil {
		return nil, err
	}
	if len(res.Taskresult) != len(tasks) {
		return nil, errors.New("taskqueue: server error")
	}
	tasksOut := make([]*Task, len(tasks))
	for i, tr := range res.Taskresult {
		tasksOut[i] = new(Task)
		*tasksOut[i] = *tasks[i]
		tasksOut[i].Method = tasksOut[i].method()
		if tasksOut[i].Name == "" {
			tasksOut[i].Name = string(tr.ChosenTaskName)
		}
		if *tr.Result != pb.TaskQueueServiceError_OK {
			if alreadyAddedErrors[*tr.Result] {
				me[i] = ErrTaskAlreadyAdded
			} else {
				me[i] = &internal.APIError{
					Service: "taskqueue",
					Code:    int32(*tr.Result),
				}
			}
			any = true
		}
	}
	if any {
		return tasksOut, me
	}
	return tasksOut, nil
}
func AddMulti(c context.Context, tasks []*Task, queueName string) ([]*Task, error) {
	req := &pb.TaskQueueBulkAddRequest{
		AddRequest: make([]*pb.TaskQueueAddRequest, len(tasks)),
	}
	me, any := make(appengine.MultiError, len(tasks)), false
	for i, t := range tasks {
		req.AddRequest[i], me[i] = newAddReq(c, t, queueName)
		any = any || me[i] != nil
	}
	if any {
		return nil, me
	}
	res := &pb.TaskQueueBulkAddResponse{}
	if err := internal.Call(c, "taskqueue", "BulkAdd", req, res); err != nil {
		return nil, err
	}
	if len(res.Taskresult) != len(tasks) {
		return nil, errors.New("taskqueue: server error")
	}
	tasksOut := make([]*Task, len(tasks))
	for i, tr := range res.Taskresult {
		tasksOut[i] = new(Task)
		*tasksOut[i] = *tasks[i]
		tasksOut[i].Method = tasksOut[i].method()
		if tasksOut[i].Name == "" {
			tasksOut[i].Name = string(tr.ChosenTaskName)
		}
		if *tr.Result != pb.TaskQueueServiceError_OK {
			if alreadyAddedErrors[*tr.Result] {
				me[i] = ErrTaskAlreadyAdded
			} else {
				me[i] = &internal.APIError{
					Service: "taskqueue",
					Code:    int32(*tr.Result),
				}
			}
			any = true
		}
	}
	if any {
		return tasksOut, me
	}
	return tasksOut, nil
}
func AddMulti ( c context . Context , tasks [ ] * Task , queueName string ) ( [ ] * Task , error ) { req := & pb . TaskQueueBulkAddRequest { AddRequest : make ( [ ] * pb . TaskQueueAddRequest , len ( tasks ) ) , } me , any := make ( appengine . MultiError , len ( tasks ) ) , false for i , t := range tasks { req . AddRequest [ i ] , me [ i ] = newAddReq ( c , t , queueName ) any = any || me [ i ] != nil } if any { return nil , me } res := & pb . TaskQueueBulkAddResponse { } if err := internal . Call ( c , " " , " " , req , res ) ; err != nil { return nil , err } if len ( res . Taskresult ) != len ( tasks ) { return nil , errors . New ( " " ) } tasksOut := make ( [ ] * Task , len ( tasks ) ) for i , tr := range res . Taskresult { tasksOut [ i ] = new ( Task ) * tasksOut [ i ] = * tasks [ i ] tasksOut [ i ] . Method = tasksOut [ i ] . method ( ) if tasksOut [ i ] . Name == " " { tasksOut [ i ] . Name = string ( tr . ChosenTaskName ) } if * tr . Result != pb . TaskQueueServiceError_OK { if alreadyAddedErrors [ * tr . Result ] { me [ i ] = ErrTaskAlreadyAdded } else { me [ i ] = & internal . APIError { Service : " " , Code : int32 ( * tr . Result ) , } } any = true } } if any { return tasksOut , me } return tasksOut , nil }
// AddMulti adds multiple tasks to a named queue.
// An empty queue name means that the default queue will be used.
// AddMulti returns a slice of equivalent tasks with defaults filled in, including setting
// each task's Name field to the chosen name if the original was empty.
// If a given task is badly formed or could not be added, an appengine.MultiError is returned.
AddMulti adds multiple tasks to a named queue . An empty queue name means that the default queue will be used . AddMulti returns a slice of equivalent tasks with defaults filled in including setting each task s Name field to the chosen name if the original was empty . If a given task is badly formed or could not be added an appengine . MultiError is returned .