gearman-go/src/pkg/gearman/worker.go

55 lines
957 B
Go
Raw Normal View History

2011-03-15 20:21:42 +08:00
package gearman
import(
2011-05-16 17:26:32 +08:00
"net"
"os"
2011-03-15 20:21:42 +08:00
)
2011-05-16 17:26:32 +08:00
type Worker struct {
servers []net.Conn
2011-03-15 20:21:42 +08:00
}
2011-05-16 17:26:32 +08:00
func NewWorker() (worker *Worker) {
worker = &Worker{servers:make([]net.Conn, 0, WORKER_SERVER_CAP)}
2011-03-15 20:21:42 +08:00
return worker
}
// add server
2011-05-16 17:26:32 +08:00
// worker.AddServer("127.0.0.1:4730")
func (worker * Worker) AddServer(addr string) (err os.Error) {
if len(worker.servers) == cap(worker.servers) {
return os.NewError("There were too many servers.")
2011-03-15 20:21:42 +08:00
}
2011-05-16 17:26:32 +08:00
conn, err := net.Dial(TCP, addr)
if err != nil {
return err
}
n := len(worker.servers)
worker.servers = worker.servers[0: n + 1]
worker.servers[n] = conn
return nil
2011-03-15 20:21:42 +08:00
}
2011-05-16 17:26:32 +08:00
/*
2011-03-15 20:21:42 +08:00
// add function
2011-05-16 17:26:32 +08:00
func (worker * Worker) AddFunction(funcname string,
f interface{}, context interface{}) (err Error) {
2011-03-15 20:21:42 +08:00
}
// work
func (worker * GearmanWorker) Work() {
for {
2011-05-16 17:26:32 +08:00
2011-03-15 20:21:42 +08:00
}
}
2011-05-16 17:26:32 +08:00
// Close
2011-03-15 20:21:42 +08:00
// should used as defer
2011-05-16 17:26:32 +08:00
func (worker * GearmanWorker) Close() (err Error){
2011-03-15 20:21:42 +08:00
}
2011-05-16 17:26:32 +08:00
*/