ASP.NET Core WebApi服务和AMPQ上的Subscripion(Rabbit MQ)

时间:2017-06-04 13:32:30

标签: asp.net-web-api asp.net-core rabbitmq asp.net-core-webapi

任务是创建一个web api(rest)服务,即搜索服务。 此服务也应该在接收事件时监听队列并重新编制索引。

将侦听逻辑插入ASP.NET Core WebApi Application的最佳方法是什么?

这是一个有效的解决方案,但我不确定它是不是很好。

Program.cs

var host = new WebHostBuilder()
    .UseKestrel()
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>()
    .Build();

var ampq = host.Services.GetService(typeof(IAmpqListener)) as IAmpqListener;
ampq?.Subscribe();

host.Run();

1 个答案:

答案 0 :(得分:0)

我在github上有一个库。

这个库可以更简单地通过rabbitmq监听(使用)和/或生成消息。

消费者示例:

public class FooWorker : IWorker<FooData>
{
    public string JobName => "foo.job.name"; // Should be same as dispatched job name.

    public bool Work(FooData data)
    {
        // Lets, do whatever you want by data.

        // Return true, if working completed successfully, otherwise return false.
        return true;
    }
}

FooWorker是听众。消息传输到名为foo.job.name。

的队列时调用的工作方法

有关详细信息:http://openjdk.java.net/projects/jigsaw/quick-start