IApptaskDomainService.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Hotline.Share.Dtos.BatchTask;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace Hotline.BatchTask
  8. {
  9. public interface IApptaskDomainService
  10. {
  11. /// <summary>
  12. /// 新增任务
  13. /// </summary>
  14. Task<string> AddAsync(AddApptaskRequest request, CancellationToken cancellation);
  15. /// <summary>
  16. /// 查询任务进度
  17. /// </summary>
  18. /// <returns></returns>
  19. Task<ApptaskProgressDto> GetProgressAsync(string taskId, CancellationToken cancellation);
  20. /// <summary>
  21. /// 查询当前任务是否全部完成
  22. /// </summary>
  23. /// <param name="taskId"></param>
  24. /// <param name="cancellation"></param>
  25. /// <returns></returns>
  26. Task<bool> IsCompletedAsync(string taskId, CancellationToken cancellation);
  27. /// <summary>
  28. /// 终止任务
  29. /// </summary>
  30. /// <param name="taskId"></param>
  31. /// <param name="cancellation"></param>
  32. /// <returns></returns>
  33. Task TerminalTaskAsync(string taskId, CancellationToken cancellation);
  34. /*job request*/
  35. /// <summary>
  36. /// 获取一个待执行的任务
  37. /// </summary>
  38. /// <param name="cancellation"></param>
  39. /// <returns></returns>
  40. Task<ApptaskItem?> GetWaitingTaskAsync(CancellationToken cancellation);
  41. /// <summary>
  42. /// 执行任务
  43. /// </summary>
  44. /// <param name="executor"></param>
  45. /// <param name="apptaskItem"></param>
  46. /// <param name="cancellation"></param>
  47. /// <returns></returns>
  48. Task<ApptaskExecuteResult> ExecuteAsync<TRequest>(IApptaskExecutor<TRequest> executor, ApptaskItem apptaskItem, CancellationToken cancellation);
  49. }
  50. }