本文整理汇总了Golang中github.com/catalyzeio/cli/lib/jobs.IJobs.RetrieveByType方法的典型用法代码示例。如果您正苦于以下问题:Golang IJobs.RetrieveByType方法的具体用法?Golang IJobs.RetrieveByType怎么用?Golang IJobs.RetrieveByType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/catalyzeio/cli/lib/jobs.IJobs
的用法示例。
在下文中一共展示了IJobs.RetrieveByType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: CmdList
func CmdList(svcName string, iw IWorker, is services.IServices, ij jobs.IJobs) error {
service, err := is.RetrieveByLabel(svcName)
if err != nil {
return err
}
if service == nil {
return fmt.Errorf("Could not find a service with the label \"%s\". You can list services with the \"catalyze services list\" command.", svcName)
}
workers, err := iw.Retrieve(service.ID)
if err != nil {
return err
}
jobs, err := ij.RetrieveByType(service.ID, "worker", 1, 1000)
if err != nil {
return err
}
type workerJob struct {
scale int
running int
}
var workerJobs = map[string]*workerJob{}
for target, scale := range workers.Workers {
workerJobs[target] = &workerJob{scale, 0}
}
if len(workerJobs) == 0 {
logrus.Printf("No workers found for service %s", svcName)
return nil
}
for _, j := range *jobs {
if _, ok := workerJobs[j.Target]; !ok {
workerJobs[j.Target] = &workerJob{0, 0}
}
if j.Status == "running" {
workerJobs[j.Target].running = 1
}
}
data := [][]string{{"TARGET", "SCALE", "RUNNING JOBS"}}
for target, wj := range workerJobs {
data = append(data, []string{target, fmt.Sprintf("%d", wj.scale), fmt.Sprintf("%d", wj.running)})
}
table := tablewriter.NewWriter(logrus.StandardLogger().Out)
table.SetBorder(false)
table.SetRowLine(false)
table.SetCenterSeparator("")
table.SetColumnSeparator("")
table.SetRowSeparator("")
table.AppendBulk(data)
table.Render()
return nil
}