25 lines
538 B
Go
25 lines
538 B
Go
package client
|
|
|
|
import (
|
|
"goRedisDLM/engine"
|
|
"net/rpc"
|
|
)
|
|
|
|
func CreateRpcWorker(clients chan *rpc.Client) func(request engine.Request) (engine.Response, error) {
|
|
return func(request engine.Request) (engine.Response, error) {
|
|
client := <-clients
|
|
return RpcWorker(client, request)
|
|
}
|
|
}
|
|
|
|
func RpcWorker(client *rpc.Client, request engine.Request) (engine.Response, error) {
|
|
out := engine.Response{}
|
|
|
|
err := client.Call("Inventory.Work", request, &out)
|
|
if err != nil {
|
|
return engine.Response{Id: "err"}, err
|
|
}
|
|
|
|
return out, nil
|
|
}
|