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
|
|
|
*/
|