SendController.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using DevExpress.XtraLayout;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Net.Http;
  6. using System.Text;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9. using System.Web.Http;
  10. using XdCxRhDw.Dto;
  11. using XdCxRhDW.Dto;
  12. namespace XdCxRhDW.App.WebAPI.Controllers
  13. {
  14. /// <summary>
  15. /// 推送接口
  16. /// </summary>
  17. public class SendController : BaseController
  18. {
  19. CancellationTokenSource cts1;
  20. /// <summary>
  21. /// 推送数据
  22. /// </summary>
  23. /// <param name="dtoList"></param>
  24. /// <returns></returns>
  25. [HttpPost]
  26. public async Task<AjaxResult> SendXdCxRhDW(IEnumerable<SendDto> dtoList)
  27. {
  28. cts1 = new CancellationTokenSource();
  29. while (!cts1.IsCancellationRequested)
  30. {
  31. try
  32. {
  33. //int idx = 1;
  34. foreach (var dto in dtoList)
  35. {
  36. if (cts1.IsCancellationRequested) break;
  37. var msg = Newtonsoft.Json.JsonConvert.SerializeObject(dto);
  38. await Task.Delay(3000, cts1.Token);
  39. }
  40. return Success();
  41. }
  42. catch (Exception ex)
  43. {
  44. await Task.Delay(5000, cts1.Token);
  45. return Error("推送异常!");
  46. }
  47. }
  48. return Error("");
  49. }
  50. }
  51. }