任务rpc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
2.3 KiB

2 years ago
2 years ago
2 years ago
2 years ago
  1. package taskrpc
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "log"
  6. )
  7. // 完成单次任务
  8. func DoTask(dbname, siteid, userId, task_type string, url ...string) (bool, error) {
  9. if dbname == "" || userId == "" || task_type == "" || siteid == "" {
  10. return false, errors.New("参数不能为空")
  11. }
  12. conn, err := rpc_server_conn(url...)
  13. if err != nil {
  14. return false, err
  15. }
  16. defer conn.Close()
  17. data := DoTaskParam{}
  18. data.Dbname = dbname
  19. data.SiteId = siteid
  20. data.UserId = userId
  21. data.Type = task_type
  22. req, err := SetReqData(data)
  23. if err != nil {
  24. log.Println("DoTask crypter error:", err)
  25. return false, err
  26. }
  27. res := &Response{}
  28. err = conn.DoTask(req, res)
  29. if err != nil {
  30. log.Println("taskrpc DoTask error:", err)
  31. return false, err
  32. }
  33. res_data_de, err := GetResData(res)
  34. if err != nil {
  35. return false, err
  36. }
  37. if res_data_de == "" {
  38. return false, nil
  39. }
  40. var task_res bool
  41. err = json.Unmarshal([]byte(res_data_de), &task_res)
  42. if err != nil {
  43. return false, err
  44. }
  45. return task_res, nil
  46. }
  47. // 完成循环类任务
  48. func DoCycleTask(dbname, siteid, userId, task_id, task_category string, url ...string) (bool, error) {
  49. if dbname == "" || userId == "" || task_id == "" {
  50. return false, errors.New("参数错误")
  51. }
  52. conn, err := rpc_server_conn(url...)
  53. if err != nil {
  54. return false, err
  55. }
  56. defer conn.Close()
  57. data := DoCycleTaskParam{}
  58. data.Dbname = dbname
  59. data.SiteId = siteid
  60. data.UserId = userId
  61. data.TaskId = task_id
  62. data.TaskCategroy = task_category
  63. req, err := SetReqData(data)
  64. if err != nil {
  65. log.Println("DoCycleTask crypter error:", err)
  66. return false, err
  67. }
  68. res := &Response{}
  69. err = conn.DoCycleTask(req, res)
  70. if err != nil {
  71. log.Println("taskrpc DoCycleTask error:", err)
  72. return false, err
  73. }
  74. res_data_de, err := GetResData(res)
  75. if err != nil {
  76. return false, err
  77. }
  78. if res_data_de == "" {
  79. return false, nil
  80. }
  81. var task_res bool
  82. err = json.Unmarshal([]byte(res_data_de), &task_res)
  83. if err != nil {
  84. return false, err
  85. }
  86. return task_res, nil
  87. }