2016-12-01 76 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()); 

我希望這個解決方案是讓更多的人有幫助。