Program.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. using Core.RabbitMQBus.Common;
  8. using Core.RabbitMQBus.EventBus;
  9. using Core.RabbitMQBus.Extensions;
  10. using Microsoft.AspNetCore;
  11. using Microsoft.AspNetCore.Builder;
  12. using Microsoft.AspNetCore.Hosting;
  13. using Microsoft.Extensions.DependencyInjection;
  14. using Microsoft.Extensions.Logging;
  15. namespace WindowsFormsApp1
  16. {
  17. static class Program
  18. {
  19. private static IRabbitMqPublisher _rabbitMqPublisher;
  20. /// <summary>
  21. /// The main entry point for the application.
  22. /// </summary>
  23. [STAThread]
  24. static void Main(string[] args)
  25. {
  26. Console.WriteLine("Hello World!");
  27. IServiceCollection services = new ServiceCollection();
  28. services.AddLogging();
  29. services.AddTransient<ILoggerFactory, LoggerFactory>();
  30. services.AddTransient<ITestService, TestService>();
  31. services.RegisterRabbitMQ(e => new RabbitMQOptions() { HostName = "124.71.132.255" }); //localhost
  32. services.RabbitMQRegisterSubscriber("Win", "Service");
  33. //构建容器
  34. IServiceProvider serviceProvider = services.BuildServiceProvider();
  35. // 创建ConsoleLogProvider并根据日志类目名称(CategoryName)生成Logger实例
  36. //解析
  37. _rabbitMqPublisher = serviceProvider.GetService<IRabbitMqPublisher>();
  38. //Publisher();
  39. _rabbitMqPublisher.Publish("test_queue", "测试");
  40. //CreateWebHostBuilder(args).Build().Run();
  41. Application.SetHighDpiMode(HighDpiMode.SystemAware);
  42. Application.EnableVisualStyles();
  43. Application.SetCompatibleTextRenderingDefault(false);
  44. Application.Run(new Form1());
  45. }
  46. public static void mq()
  47. {
  48. }
  49. public static void Publisher()
  50. {
  51. for (int i = 0; i < 10000; i++) //100000
  52. {
  53. Console.WriteLine("PublishTestCount:" + i);
  54. _rabbitMqPublisher.Publish("PublishTest1", "测试" + i);
  55. _rabbitMqPublisher.Publish("PublishTest2", "测试" + i);
  56. }
  57. }
  58. }
  59. public class TestService : ITestService, ISubscribe
  60. {
  61. [Subscribe(queueName: "PublishTest1")]
  62. public async Task<ExecuteMethodResult> Test(string message)
  63. {
  64. Thread.Sleep(10);
  65. Console.WriteLine(message + "PublishTest1");
  66. return await Task.FromResult(ExecuteMethodResult.Success());
  67. }
  68. [Subscribe(queueName: "PublishTest2")]
  69. public async Task<ExecuteMethodResult> Test1(string message)
  70. {
  71. Console.WriteLine(message + "PublishTest2");
  72. return await Task.FromResult(ExecuteMethodResult.Success());
  73. }
  74. [Subscribe(queueName: "test_queue")]
  75. public async Task<ExecuteMethodResult> Test3(string message)
  76. {
  77. Console.WriteLine(message + "test_queue");
  78. return await Task.FromResult(ExecuteMethodResult.Success());
  79. }
  80. //[Subscribe(queueName: "test_routing_key")]
  81. //public async Task<ExecuteMethodResult> Test4(string message)
  82. //{
  83. // Console.WriteLine(message + "test_routing_key");
  84. // return await Task.FromResult(ExecuteMethodResult.Success());
  85. //}
  86. }
  87. public interface ITestService
  88. {
  89. }
  90. }