本文整理汇总了Golang中github.com/tsuru/monsterqueue.Job.Queue方法的典型用法代码示例。如果您正苦于以下问题:Golang Job.Queue方法的具体用法?Golang Job.Queue怎么用?Golang Job.Queue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/tsuru/monsterqueue.Job
的用法示例。
在下文中一共展示了Job.Queue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Run
func (t *machineCreate) Run(job monsterqueue.Job) {
params := job.Parameters()
jobId := params["jobId"].(string)
vmId := params["vmId"].(string)
projectId := params["projectId"].(string)
ip, err := t.iaas.waitVMIsCreated(jobId, vmId, projectId)
if err != nil {
_, qErr := job.Queue().Enqueue(t.iaas.taskName(machineDeleteTaskName), monsterqueue.JobParams{
"vmId": vmId,
"projectId": projectId,
})
if qErr != nil {
job.Error(fmt.Errorf("error trying to enqueue deletion: %s caused by: %s", qErr, err))
return
}
job.Error(err)
return
}
if tags, ok := params["tags"]; ok {
var cloudTags []*cloudstackTag
tagList := strings.Split(tags.(string), ",")
cloudTags = make([]*cloudstackTag, 0, len(tagList))
for _, tag := range tagList {
if strings.Contains(tag, ":") {
parts := strings.SplitN(tag, ":", 2)
cloudTags = append(cloudTags, &cloudstackTag{
Key: string(parts[0]),
Value: string(parts[1]),
})
}
}
if len(cloudTags) > 0 {
param := make(map[string]string)
param["resourceids"] = vmId
param["resourcetype"] = "UserVm"
for index, tag := range cloudTags {
param["tags["+strconv.Itoa(index+1)+"].key"] = tag.Key
param["tags["+strconv.Itoa(index+1)+"].value"] = tag.Value
}
param["projectId"] = projectId
var result CreateTagsResponse
err = t.iaas.do("createTags", param, &result)
if err != nil {
job.Error(err)
return
}
}
}
notified, _ := job.Success(ip)
if !notified {
_, err = job.Queue().Enqueue(t.iaas.taskName(machineDeleteTaskName), monsterqueue.JobParams{
"vmId": vmId,
"projectId": projectId,
})
if err != nil {
log.Errorf("could not enqueue delete unnotified vm: %s", err)
return
}
}
}
示例2: Run
func (t *machineCreate) Run(job monsterqueue.Job) {
params := job.Parameters()
jobId := params["jobId"].(string)
vmId := params["vmId"].(string)
projectId := params["projectId"].(string)
ip, err := t.iaas.waitVMIsCreated(jobId, vmId, projectId)
if err != nil {
_, qErr := job.Queue().Enqueue(t.iaas.taskName(machineDeleteTaskName), monsterqueue.JobParams{
"vmId": vmId,
"projectId": projectId,
})
if qErr != nil {
job.Error(fmt.Errorf("error trying to enqueue deletion: %s caused by: %s", qErr, err))
return
}
job.Error(err)
return
}
notified, _ := job.Success(ip)
if !notified {
_, err = job.Queue().Enqueue(t.iaas.taskName(machineDeleteTaskName), monsterqueue.JobParams{
"vmId": vmId,
"projectId": projectId,
})
if err != nil {
log.Errorf("could not enqueue delete unnotified vm: %s", err)
return
}
}
}