| | |
| | | package androidSync |
| | | |
| | | //package main |
| | | import ( |
| | | sdb "basic.com/Android/syncdb.git" |
| | | "basic.com/valib/logger.git" |
| | |
| | | syncClusterKeyPrefix = "bjbasic123" |
| | | ) |
| | | const ( |
| | | defaultSqliteDBPath = "./testdb.db" |
| | | defaultSqliteDBPath = "/sdcard/testdb.db" |
| | | |
| | | dBNameCluster = "cluster" |
| | | dBNameClusterNode = "cluster_node" |
| | |
| | | var members *memberlist.Memberlist |
| | | var sqliteDBPath string = defaultSqliteDBPath |
| | | |
| | | func init(){ |
| | | var logFile = "./logger/androidSync.log" |
| | | var logSaveDays = 15 // 日志初始化 |
| | | func InitCluster() bool { |
| | | var logFile = "/sdcard/androidSync.log" |
| | | var logSaveDays = 15 |
| | | logger.Config(logFile, logger.DebugLevel) |
| | | logger.SetSaveDays(logSaveDays) |
| | | err := sdb.InitDbConn(sqliteDBPath) |
| | |
| | | logger.Error("sdb.InitDbConn ERROR: sqliteDBPath:", sqliteDBPath) |
| | | os.Exit(-1) |
| | | } |
| | | return true |
| | | } |
| | | |
| | | /* |
| | | 设置数据库路径 |
| | | */ |
| | | func setDBPath(path string){ |
| | | sqliteDBPath = path |
| | | } |
| | | |
| | | /* |
| | | 获取数据库路径 |
| | | */ |
| | | func getDBPath() string { |
| | | return sqliteDBPath |
| | | } |
| | |
| | | sdb.CloseSearchNode(ml) |
| | | } |
| | | |
| | | /* |
| | | 创建查询集群的临时节点,需要传入集群密码,6字节,数字或字母 |
| | | 每个一秒调用一次GetSearchNodes,拿到搜索到的节点信息数据 |
| | | 最后调用CloseSearchNode,关闭临时创建的搜索节点 |
| | | pwd = password must six bytes |
| | | */ |
| | | func CreateSearchNodeByPwd(pwd string) bool{ |
| | | |
| | | pwdFull := syncClusterKeyPrefix + pwd |
| | |
| | | return true |
| | | } |
| | | |
| | | /* |
| | | 创建查询集群的临时节点,需要传入集群密码,16字节 |
| | | key = password |
| | | */ |
| | | |
| | | func createSearchNode(key string) bool { |
| | | var err error |
| | | members, err = sdb.CreateSearchNode(key) |
| | |
| | | return true |
| | | } |
| | | |
| | | /* |
| | | 阻塞方式创建搜索集群的节点,会直接返回搜索到的节点 |
| | | map[string]NodeInfo |
| | | nodes[NodeInfo.NodeID] = NodeInfo |
| | | */ |
| | | |
| | | func createSearchNodeWhitClose(key string, delay int) []byte { |
| | | nodes := sdb.CreateSearchNodeWhitClose(key, time.Duration(delay)) |
| | | strNodes, err := json.Marshal(nodes) |
| | |
| | | return strNodes |
| | | } |
| | | |
| | | /* |
| | | 关闭临时创建的节点 |
| | | */ |
| | | |
| | | func CloseSearchNode() bool { |
| | | err := sdb.CloseSearchNode(members) |
| | | if err != nil { |
| | |
| | | return true |
| | | } |
| | | |
| | | /* |
| | | 获取搜索到的节点信息 |
| | | json vector |
| | | [ |
| | | {Node1}, |
| | | {Node2}, |
| | | ... |
| | | {Noden} |
| | | ] |
| | | type NodeInfo struct { |
| | | ClusterID string `json:"clusterID"` |
| | | NodeID string `json:"nodeID"` |
| | | NodeAddress string `json:"nodeAddress"` |
| | | IsAlive int `json:"isAlive"` //StatusNone:0, StatusAlive:1, StatusLeaving:2, StatusLeft:3, StatusFailed:4 |
| | | } |
| | | */ |
| | | func GetSearchNodes() []byte { |
| | | nodes := sdb.GetSearchNodes() |
| | | strNodes, err := json.Marshal(nodes) |
| | |
| | | return nil |
| | | } |
| | | return strNodes |
| | | } |
| | | } |