package taskrpc import ( "encoding/json" "errors" "log" ) // 完成单次任务 func DoTask(dbname, siteid, userId, task_type string, url ...string) (bool, error) { if dbname == "" || userId == "" || task_type == "" || siteid == "" { return false, errors.New("参数不能为空") } conn, err := rpc_server_conn(url...) if err != nil { return false, err } defer conn.Close() data := DoTaskParam{} data.Dbname = dbname data.SiteId = siteid data.UserId = userId data.Type = task_type req, err := SetReqData(data) if err != nil { log.Println("DoTask crypter error:", err) return false, err } res := &Response{} err = conn.DoTask(req, res) if err != nil { log.Println("taskrpc DoTask error:", err) return false, err } res_data_de, err := GetResData(res) if err != nil { return false, err } if res_data_de == "" { return false, nil } var task_res bool err = json.Unmarshal([]byte(res_data_de), &task_res) if err != nil { return false, err } return task_res, nil } // 完成循环类任务 func DoCycleTask(dbname, siteid, userId, task_id, task_category string, url ...string) (bool, error) { if dbname == "" || userId == "" || task_id == "" { return false, errors.New("参数错误") } conn, err := rpc_server_conn(url...) if err != nil { return false, err } defer conn.Close() data := DoCycleTaskParam{} data.Dbname = dbname data.SiteId = siteid data.UserId = userId data.TaskId = task_id data.TaskCategroy = task_category req, err := SetReqData(data) if err != nil { log.Println("DoCycleTask crypter error:", err) return false, err } res := &Response{} err = conn.DoCycleTask(req, res) if err != nil { log.Println("taskrpc DoCycleTask error:", err) return false, err } res_data_de, err := GetResData(res) if err != nil { return false, err } if res_data_de == "" { return false, nil } var task_res bool err = json.Unmarshal([]byte(res_data_de), &task_res) if err != nil { return false, err } return task_res, nil }