2016-12-01 77 views
0

我开发一个ASP.NET MVC应用5这是为了接收和发送消息到Android智能手机。我目前实施的方式是使用消息代理(本例中为RabbitMQ),让代理处理后端和智能手机之间的通信。ASP.NET MVC后台工作 - 最佳实践

在ASP.NET代码我创建它在Global.asax中应用的开始运行一个线程(我见过一些人谁推荐这个,也许我做错了...)。该线程负责监听代理收到的消息并进行处理。

我的问题是:这是在ASP.NET应用程序中处理外部信息方面的好做法?这是我第一次编程这种应用程序,我不知道我是否正确地做了这些事情。有谁知道另一种方法来从ASP.NET的外部设备接收消息?再次,请记住,我对ASP.NET很陌生,也许我在问一些愚蠢的事情,但我只需要一些关于这方面的信息。

谢谢!

+0

听起来像你真的想用一个完全成熟的服务总线。你有没有看过nservicebus或masstransit。你可以用rabbitmq把公交车换回来。 – Fran

+0

对不起我的无知,但ASP.NET应用程序中的总线在哪里?它是如何定义的? –

+0

这里是MassTransit的主页https://github.com/MassTransit/MassTransit – Fran

回答

0

万一有人有类似的问题,我会回答我如何使它工作。最后我用迟发型(http://hangfire.io/),这是很容易配置,只需要添加下面这段代码在Startup.Auth文件:

GlobalConfiguration.Configuration.UseSqlServerStorage("db_name"); 

     app.UseHangfireServer(); 
     app.UseHangfireDashboard(); 

以下代码启动后台任务:

 var storage = new SqlServerStorage("db_name"); 
     var client = new BackgroundJobClient(storage); 
     client.Enqueue(() => rabbitInstance.MethodXYZ()); 

我希望这个解决方案是让更多的人有帮助。