package main import ( "flag" "goRedisDLM/engine" "goRedisDLM/rpcSupport" "goRedisDLM/scheduler" "goRedisDLM/worker/client" "log" "net/rpc" "strings" ) var host = flag.String("host", "", "host") func main() { flag.Parse() if *host == "" { flag.Usage() return } e := engine.FirstEngine{ Scheduler: &scheduler.FirstScheduler{}, WorkCount: 15, Work: client.CreateRpcWorker(createRpcPoll(*host)), } e.Run(10) } func createRpcPoll(port string) chan *rpc.Client { out := make(chan *rpc.Client) var clients []*rpc.Client split := strings.Split(port, ",") for i, ele := range split { cli, err := rpcSupport.RpcClient(ele) if err != nil { log.Printf("host: %s,%d create err: %v", ele, i, err) continue } log.Printf("rpc cli create ok: %s", ele) clients = append(clients, cli) } go func() { for { for _, ele := range clients { out <- ele } } }() return out }