61 lines
929 B
Go
61 lines
929 B
Go
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: 5,
|
|
Work: client.CreateRpcWorker(createRpcPoll(*host)),
|
|
}
|
|
|
|
e.Run(5000)
|
|
}
|
|
|
|
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
|
|
}
|