job.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import request from "@/utils/request";
  2. const API_PATH = "/task/cronjob/job";
  3. const JobAPI = {
  4. getSchedulerStatus() {
  5. return request<ApiResponse<SchedulerStatus>>({
  6. url: `${API_PATH}/scheduler/status`,
  7. method: "get",
  8. });
  9. },
  10. getSchedulerJobs() {
  11. return request<ApiResponse<SchedulerJob[]>>({
  12. url: `${API_PATH}/scheduler/jobs`,
  13. method: "get",
  14. });
  15. },
  16. startScheduler() {
  17. return request<ApiResponse>({
  18. url: `${API_PATH}/scheduler/start`,
  19. method: "post",
  20. });
  21. },
  22. pauseScheduler() {
  23. return request<ApiResponse>({
  24. url: `${API_PATH}/scheduler/pause`,
  25. method: "post",
  26. });
  27. },
  28. resumeScheduler() {
  29. return request<ApiResponse>({
  30. url: `${API_PATH}/scheduler/resume`,
  31. method: "post",
  32. });
  33. },
  34. shutdownScheduler() {
  35. return request<ApiResponse>({
  36. url: `${API_PATH}/scheduler/shutdown`,
  37. method: "post",
  38. });
  39. },
  40. clearAllJobs() {
  41. return request<ApiResponse>({
  42. url: `${API_PATH}/scheduler/jobs/clear`,
  43. method: "delete",
  44. });
  45. },
  46. getSchedulerConsole() {
  47. return request<ApiResponse<string>>({
  48. url: `${API_PATH}/scheduler/console`,
  49. method: "get",
  50. });
  51. },
  52. syncJobsToDb() {
  53. return request<ApiResponse<number>>({
  54. url: `${API_PATH}/scheduler/sync`,
  55. method: "post",
  56. });
  57. },
  58. pauseJob(jobId: string) {
  59. return request<ApiResponse>({
  60. url: `${API_PATH}/task/pause/${jobId}`,
  61. method: "post",
  62. });
  63. },
  64. resumeJob(jobId: string) {
  65. return request<ApiResponse>({
  66. url: `${API_PATH}/task/resume/${jobId}`,
  67. method: "post",
  68. });
  69. },
  70. runJobNow(jobId: string) {
  71. return request<ApiResponse>({
  72. url: `${API_PATH}/task/run/${jobId}`,
  73. method: "post",
  74. });
  75. },
  76. removeJob(jobId: string) {
  77. return request<ApiResponse>({
  78. url: `${API_PATH}/task/remove/${jobId}`,
  79. method: "delete",
  80. });
  81. },
  82. getJobLogList(query: JobLogPageQuery) {
  83. return request<ApiResponse<PageResult<JobLogTable[]>>>({
  84. url: `${API_PATH}/log/list`,
  85. method: "get",
  86. params: query,
  87. });
  88. },
  89. getJobLogDetail(id: number) {
  90. return request<ApiResponse<JobLogTable>>({
  91. url: `${API_PATH}/log/detail/${id}`,
  92. method: "get",
  93. });
  94. },
  95. deleteJobLog(ids: number[]) {
  96. return request<ApiResponse>({
  97. url: `${API_PATH}/log/delete`,
  98. method: "delete",
  99. data: ids,
  100. });
  101. },
  102. };
  103. export default JobAPI;
  104. export interface SchedulerStatus {
  105. status: string;
  106. is_running: boolean;
  107. job_count: number;
  108. }
  109. export interface SchedulerJob {
  110. id: string;
  111. name: string;
  112. trigger: string;
  113. next_run_time?: string;
  114. status: string;
  115. }
  116. export interface JobLogPageQuery extends PageQuery {
  117. job_id?: string;
  118. job_name?: string;
  119. status?: string;
  120. trigger_type?: string;
  121. }
  122. export interface JobLogTable extends BaseType {
  123. job_id: string;
  124. job_name?: string;
  125. trigger_type?: string;
  126. status: string;
  127. next_run_time?: string;
  128. job_state?: string;
  129. result?: string;
  130. error?: string;
  131. created_time?: string;
  132. updated_time?: string;
  133. }