(c context.Context, maxTasks int, queueName string, leaseTime int, groupByTag bool, tag []byte)
| 402 | } |
| 403 | |
| 404 | func lease(c context.Context, maxTasks int, queueName string, leaseTime int, groupByTag bool, tag []byte) ([]*Task, error) { |
| 405 | if queueName == "" { |
| 406 | queueName = "default" |
| 407 | } |
| 408 | req := &pb.TaskQueueQueryAndOwnTasksRequest{ |
| 409 | QueueName: []byte(queueName), |
| 410 | LeaseSeconds: proto.Float64(float64(leaseTime)), |
| 411 | MaxTasks: proto.Int64(int64(maxTasks)), |
| 412 | GroupByTag: proto.Bool(groupByTag), |
| 413 | Tag: tag, |
| 414 | } |
| 415 | res := &pb.TaskQueueQueryAndOwnTasksResponse{} |
| 416 | if err := internal.Call(c, "taskqueue", "QueryAndOwnTasks", req, res); err != nil { |
| 417 | return nil, err |
| 418 | } |
| 419 | tasks := make([]*Task, len(res.Task)) |
| 420 | for i, t := range res.Task { |
| 421 | tasks[i] = &Task{ |
| 422 | Payload: t.Body, |
| 423 | Name: string(t.TaskName), |
| 424 | Method: "PULL", |
| 425 | ETA: time.Unix(0, *t.EtaUsec*1e3), |
| 426 | RetryCount: *t.RetryCount, |
| 427 | Tag: string(t.Tag), |
| 428 | } |
| 429 | } |
| 430 | return tasks, nil |
| 431 | } |
| 432 | |
| 433 | // Lease leases tasks from a queue. |
| 434 | // leaseTime is in seconds. |
no test coverage detected
searching dependent graphs…