func pullCommand(conn *gobeanstalk.Conn) { var tubesToWatch []string = strings.SplitN(*tube, ",", -1) var watchDefault bool = false for _, tubeName := range tubesToWatch { _, err := conn.Watch(tubeName) if err != nil { log.Printf("Watch %s failed\n", tubeName) log.Fatal(err) } if tubeName == "default" { watchDefault = true } } // As beanstalk by default adds the tube 'default' to the // connections watch list, we need to remove it from this // connections watch list. if watchDefault == false { _, err := conn.Ignore("default") if err != nil { log.Print("Ignore 'default' tube failed\n") log.Fatal(err) } } j, err := conn.Reserve() if err != nil { log.Println("Reserve failed") log.Fatal(err) } err = conn.Delete(j.Id) if err != nil { log.Printf("Delete failed. Job ID: %d\n", j.Id) log.Fatal(err) } os.Stdout.Write(j.Body) }