forked from yuxh/gearman-go
		
	added the example for worker
This commit is contained in:
		
							parent
							
								
									50411ee1a9
								
							
						
					
					
						commit
						a6fab88b22
					
				
							
								
								
									
										18
									
								
								example/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								example/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					# Copyright 2009 The Go Authors.  All rights reserved.
 | 
				
			||||||
 | 
					# Use of this source code is governed by a BSD-style
 | 
				
			||||||
 | 
					# license that can be found in the LICENSE file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(GOROOT)/src/Make.inc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TARG=gearman
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# GOFILES=\
 | 
				
			||||||
 | 
					#	worker.go\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CLEANFILES+= worker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(GOROOT)/src/Make.pkg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%: %.go
 | 
				
			||||||
 | 
						$(GC) $*.go
 | 
				
			||||||
 | 
						$(LD) -o $@ $*.$O
 | 
				
			||||||
							
								
								
									
										45
									
								
								example/worker.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								example/worker.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
					    "gearman"
 | 
				
			||||||
 | 
					    "fmt"
 | 
				
			||||||
 | 
					    "log"
 | 
				
			||||||
 | 
					    "os"
 | 
				
			||||||
 | 
					    "strings"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func ToUpper(job *gearman.Job) ([]byte, os.Error) {
 | 
				
			||||||
 | 
					    data := []byte(strings.ToUpper(string(job.Data)))
 | 
				
			||||||
 | 
					    return data, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
					    worker := gearman.NewWorker()
 | 
				
			||||||
 | 
					    worker.AddServer("127.0.0.1:4730")
 | 
				
			||||||
 | 
					    worker.AddFunction("ToUpper", ToUpper, 0)
 | 
				
			||||||
 | 
					    worker.AddFunction("ToUpperTimeOut5", ToUpper, 5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    go func() {
 | 
				
			||||||
 | 
					        log.Println("start worker")
 | 
				
			||||||
 | 
					        for {
 | 
				
			||||||
 | 
					            print("cmd: ")
 | 
				
			||||||
 | 
					            var str string
 | 
				
			||||||
 | 
					            fmt.Scan(&str)
 | 
				
			||||||
 | 
					            switch str {
 | 
				
			||||||
 | 
					                case "echo":
 | 
				
			||||||
 | 
					                    worker.Echo([]byte("Hello world!"))
 | 
				
			||||||
 | 
					                    job := <-worker.Queue
 | 
				
			||||||
 | 
					                    log.Println(string(job.Data))
 | 
				
			||||||
 | 
					                case "quit":
 | 
				
			||||||
 | 
					                    worker.Close()
 | 
				
			||||||
 | 
					                    return
 | 
				
			||||||
 | 
					                case "result":
 | 
				
			||||||
 | 
					                    job := <-worker.Queue
 | 
				
			||||||
 | 
					                    log.Println(string(job.Data))
 | 
				
			||||||
 | 
					                default:
 | 
				
			||||||
 | 
					                    log.Println("Unknown command")
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }()
 | 
				
			||||||
 | 
					    worker.Work()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user