QuartzController.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.example.demo.controller;
  2. import com.example.demo.base.Constants;
  3. import com.example.demo.domain.QrtzTask;
  4. import com.example.demo.model.dto.QuartzTaskDTO;
  5. import com.example.demo.service.JobService;
  6. import com.example.demo.service.QrTaskService;
  7. import com.example.demo.util.Response;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import io.swagger.v3.oas.annotations.tags.Tag;
  10. import lombok.RequiredArgsConstructor;
  11. import org.quartz.SchedulerException;
  12. import org.springframework.context.annotation.Lazy;
  13. import org.springframework.web.bind.annotation.*;
  14. import java.util.List;
  15. @RestController
  16. @Tag(name = "任务管理")
  17. @RequestMapping(Constants.QUARTZ_API + "/task")
  18. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  19. public class QuartzController {
  20. private final JobService jobService;
  21. private final QrTaskService qrTaskService;
  22. @Operation(summary = "添加任务")
  23. @PostMapping("/addTask")
  24. public void addTask(@RequestBody QuartzTaskDTO quartzTaskDTO) throws SchedulerException {
  25. QrtzTask qrtzTask = qrTaskService.addQuartzTask(quartzTaskDTO);
  26. if (quartzTaskDTO.getTaskType().equals(1)) {
  27. jobService.addJob(qrtzTask);
  28. }
  29. }
  30. @Operation(summary = "删除任务")
  31. @PostMapping("/deleteTasks")
  32. public String deleteTasks(@RequestBody List<Integer> taskIds) throws SchedulerException {
  33. return Response.success(qrTaskService.deleteQuartzTask(taskIds));
  34. }
  35. @Operation(summary = "查询任务")
  36. @PostMapping("/getTasks")
  37. public String getTasks(@RequestBody QuartzTaskDTO quartzTaskDTO) {
  38. return Response.success(qrTaskService.getTasks(quartzTaskDTO));
  39. }
  40. @Operation(summary = "更新任务")
  41. @PostMapping("/update")
  42. public void update(@RequestBody QuartzTaskDTO quartzTaskDTO) throws InterruptedException, SchedulerException {
  43. QrtzTask qrtzTask = qrTaskService.updateQuartzTask(quartzTaskDTO);
  44. jobService.updateJob(qrtzTask);
  45. }
  46. @Operation(summary = "暂停任务")
  47. @GetMapping("/pauseJob")
  48. public void pauseJob(Integer taskId) throws SchedulerException {
  49. jobService.pauseJob(taskId);
  50. }
  51. @Operation(summary = "继续任务")
  52. @GetMapping("/resumeJob")
  53. public void resumeJob(Integer taskId) throws SchedulerException {
  54. jobService.resumeJob(taskId);
  55. }
  56. }