Beispiel #1
0
func pushCommand(conn *gobeanstalk.Conn) {
	if *tube != "" {
		err := conn.Use(*tube)
		if err != nil {
			log.Printf("Use %s failed\n", *tube)
			log.Fatal(err)
		}
	}

	data, err := ioutil.ReadAll(os.Stdin)
	if err != nil {
		log.Println("Stdin read error")
		log.Fatal(err)
	}
	if len(data) < 1 {
		log.Println("Stdin has no data")
		log.Fatal()
	}
	if *verbose {
		fmt.Println(string(data))
	}

	var dataset []string
	if *multiline == true {
		dataset = strings.Split(string(data), "\n")
	} else {
		dataset = append(dataset, string(data))
	}

	for _, job := range dataset {
		if len(job) == 0 { // Skip blank lines
			continue
		}

		_, err = conn.Put([]byte(job), *pri, *delay, *ttr)
		if err != nil {
			log.Println("Put failed")
			log.Fatal(err)
		}
	}
}