| | |
| | | |
| | | switch ev := event.(type) { |
| | | case serf.UserEvent: |
| | | fmt.Println(string(ev.Payload)) |
| | | var sqlArr []string |
| | | sqlArr = append(sqlArr, string(ev.Payload)) |
| | | //results, err := ExecuteWriteSql(sqlArr) |
| | | flag, _ := ExecuteSqlByGorm(sqlArr) |
| | | fmt.Println("userEvent exec ",sqlArr,",Result:",flag) |
| | | //fmt.Println(string(ev.Payload)) |
| | | var sqlUe SqlUserEvent |
| | | err := json.Unmarshal(ev.Payload, &sqlUe) |
| | | if err !=nil { |
| | | fmt.Println("sqlUe unmarshal err:",err) |
| | | return |
| | | } |
| | | if sqlUe.Owner != a.conf.NodeName { |
| | | //results, err := ExecuteWriteSql(sqlArr) |
| | | flag, _ := ExecuteSqlByGorm(sqlUe.Sql) |
| | | fmt.Println("userEvent exec ",sqlUe.Sql,",Result:",flag) |
| | | } |
| | | |
| | | case *serf.Query: |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | type SqlUserEvent struct { |
| | | Owner string `json:"owner"` |
| | | Sql []string `json:"sql"` |
| | | } |
| | | |
| | | //SyncSql boardcast sql to cluster |
| | | func (a *Agent) SyncSql(sqlOp string) { |
| | | func (a *Agent) SyncSql(sqlOp []string) { |
| | | // event : use to send command to operate db. |
| | | err := a.UserEvent("SyncSql", []byte(sqlOp), false) |
| | | var sqlUe = SqlUserEvent{ |
| | | Owner: a.conf.NodeName, |
| | | Sql: sqlOp, |
| | | } |
| | | ueB, err := json.Marshal(sqlUe) |
| | | if err !=nil { |
| | | fmt.Println("sqlUE marshal err:",err) |
| | | return |
| | | } |
| | | err = a.UserEvent("SyncSql", ueB, false) |
| | | if err == nil || !strings.Contains(err.Error(), "cannot contain") { |
| | | fmt.Println("err: ", err) |
| | | } |
| | |
| | | |
| | | n, err := a.Agent.Join(nodes, true) |
| | | if err != nil || n == 0 { |
| | | a.Stop() |
| | | fmt.Println("Stop node") |
| | | //a.Stop() |
| | | //fmt.Println("Stop node") |
| | | return fmt.Errorf("Error Encrypt Key!") |
| | | } |
| | | |