ServiceBusService.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Reflection;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
  8. using TEAMModelOS.SDK.Helper.Common.DateTimeHelper;
  9. using TEAMModelOS.SDK.Helper.Common.JsonHelper;
  10. using TEAMModelOS.SDK.DI;
  11. namespace TEAMModelOS.Service.Services.Learn.Implements
  12. {
  13. public static class ServiceBusService
  14. {
  15. public static async Task<long> SendMessage<T>(this AzureServiceBusFactory _serviceBus ,string TopicName, string id,string pk, long startTime, int status, string msgId)
  16. {
  17. var topicClient = _serviceBus.GetServiceBusClient();
  18. //设定开始时间
  19. Dictionary<string, object> dict = new Dictionary<string, object>() {
  20. { "name",typeof(T).Name},
  21. { "id",id},
  22. { "pk",pk},
  23. { "status",status}
  24. };
  25. //var msgId = "1";
  26. string messageBody = $"Message {dict}";
  27. long time = startTime - new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
  28. if (time <= 0)
  29. {
  30. return -1;
  31. }
  32. DateTime timer = DateTimeHelper.ConvertToDateTime(startTime);
  33. Console.WriteLine($"Sending message: {messageBody}");
  34. long SequenceNumber = await topicClient.SendScheduleMessageAsync(TopicName, dict.ToApiJson(), new DateTimeOffset(timer));
  35. return SequenceNumber;
  36. }
  37. }
  38. }