using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Core.RabbitMQBus.Common;
using Core.RabbitMQBus.EventBus;
using Core.RabbitMQBus.Extensions;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace WindowsFormsApp1
{
static class Program
{
private static IRabbitMqPublisher _rabbitMqPublisher;
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
IServiceCollection services = new ServiceCollection();
services.AddLogging();
services.AddTransient();
services.AddTransient();
services.RegisterRabbitMQ(e => new RabbitMQOptions() { HostName = "124.71.132.255" }); //localhost
services.RabbitMQRegisterSubscriber("Win", "Service");
//构建容器
IServiceProvider serviceProvider = services.BuildServiceProvider();
// 创建ConsoleLogProvider并根据日志类目名称(CategoryName)生成Logger实例
//解析
_rabbitMqPublisher = serviceProvider.GetService();
//Publisher();
//CreateWebHostBuilder(args).Build().Run();
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public static void mq()
{
}
public static void Publisher()
{
for (int i = 0; i < 10000; i++) //100000
{
Console.WriteLine("PublishTestCount:" + i);
_rabbitMqPublisher.Publish("PublishTest1", "测试" + i);
_rabbitMqPublisher.Publish("PublishTest2", "测试" + i);
}
}
}
public class TestService : ITestService, ISubscribe
{
[Subscribe(queueName: "PublishTest1")]
public async Task Test(string message)
{
Thread.Sleep(10);
Console.WriteLine(message + "PublishTest1");
return await Task.FromResult(ExecuteMethodResult.Success());
}
[Subscribe(queueName: "PublishTest2")]
public async Task Test1(string message)
{
Console.WriteLine(message + "PublishTest2");
return await Task.FromResult(ExecuteMethodResult.Success());
}
}
public interface ITestService
{
}
}