【问题标题】:ASP.NET Core WebApi service and Subscripion on AMPQ (Rabbit MQ)AMQP (Rabbitmq) 上的 ASP.NET Core Web Api 服务和订阅
【发布时间】:2017-06-04 13:32:29
【问题描述】:

任务是做一个web api(rest)服务,即搜索服务。 此服务还应在接收事件时侦听队列并重新索引事物。

向 ASP.NET Core WebApi 应用程序插入监听逻辑的最佳方式是什么?

这是可行的解决方案,但我不确定这是否很好。

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();

【问题讨论】:

  • 我不明白接收数据馈送与 ASP.NET Core 有什么关系,这是一个非常广泛的问题。
  • 您有控制器Search 进行搜索。如何重新索引?我们可以订阅一些事件并调用一些(new Indexer).Build(newId)

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


【解决方案1】:

我在 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 的队列时调用的工作方法。

欲了解更多信息:https://github.com/turgayozgur/tossit

【讨论】:

    猜你喜欢
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2020-06-09
    • 2019-02-12
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多