SysJobService.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. namespace Admin.NET.Core.Service;
  2. /// <summary>
  3. /// 系统作业任务服务
  4. /// </summary>
  5. [ApiDescriptionSettings(Order = 188)]
  6. [AllowAnonymous]
  7. public class SysJobService : IDynamicApiController, ITransient
  8. {
  9. private readonly ISchedulerFactory _schedulerFactory;
  10. public SysJobService(ISchedulerFactory schedulerFactory)
  11. {
  12. _schedulerFactory = schedulerFactory;
  13. }
  14. /// <summary>
  15. /// 获取所有作业任务列表
  16. /// </summary>
  17. [HttpGet("/sysJob/list")]
  18. public async Task<List<SchedulerModel>> GetJobList()
  19. {
  20. var JobDetails = _schedulerFactory.GetJobsOfModels();
  21. return await Task.FromResult(JobDetails.ToList());
  22. }
  23. /// <summary>
  24. /// 增加作业任务
  25. /// </summary>
  26. /// <returns></returns>
  27. [HttpPost("/sysJob/add")]
  28. public async Task<ScheduleResult> AddJob()
  29. {
  30. var jobBuilder = JobBuilder.From(@"
  31. {
  32. ""jobId"": ""job1"",
  33. ""groupName"": null,
  34. ""jobType"": ""Admin.NET.Application"",
  35. ""assemblyName"": ""Admin.NET.Application"",
  36. ""description"": null,
  37. ""concurrent"": true,
  38. ""includeAnnotations"": false,
  39. ""properties"": ""{}"",
  40. ""updatedTime"": ""2022-11-22 18:00:00""
  41. }");
  42. var schedulerResult = _schedulerFactory.TryAddJob(jobBuilder, new[] { Triggers.PeriodSeconds(10) }, out _);
  43. return await Task.FromResult(schedulerResult);
  44. }
  45. /// <summary>
  46. /// 删除作业任务
  47. /// </summary>
  48. /// <returns></returns>
  49. [HttpPost("/sysJob/delete")]
  50. public async Task<ScheduleResult> DeleteJob(JobInput input)
  51. {
  52. var schedulerResult = _schedulerFactory.TryRemoveJob(input.Name, out _);
  53. return await Task.FromResult(schedulerResult);
  54. }
  55. }