2014-07-01 92 views
0

我正在開發一個MVC應用程序,其中有幾個長時間運行的進程。 在這個MVC應用程序中,我試圖從facebook上拉出朋友並存儲在mongoDB中。是在ASP.Net中管理長時間運行的進程MVC5

此過程的步驟如下: -

  1. 爲用戶從數據庫中泛型列表對象拉朋友。
  2. 從另一個通用列表對象中的臉譜拉一個用戶的朋友。
  3. 識別不在數據庫中的新朋友。
  4. 對於現有的朋友運行循環並更新現有數據。
  5. 存放在database.There的新朋友是

,如果他們大約在50到100的朋友也能正常工作。但是如果有1000多個朋友,那麼網頁大約需要30多分鐘來執行它們。爲了執行這個過程,我使用Task with async並等待。我通過jQuery AJAX調用控制器動作。

所以我的問題是,如果他們是2000+記錄,那麼它需要太多的時間。因此,在研究了我想使用窗口服務從Facebook提取數據之後。不過,我仍在探索選項,以便我沒有使用窗口服務。

使用窗口服務對於我有一些問題beow: -

  1. 如何開始從ASP.Net MVC的窗口服務。
  2. 如果我可以從ASP.Net MVC控制器的窗口服務中傳遞參數。
  3. 如果窗口服務將停止自動完成任務或我需要從網頁中停止它 。
  4. 如果窗口服務可以從窗口Azure中的ASP.Net MVC應用程序訪問,因爲它將在Azure中託管 。
  5. 他們是從Azure中的MVC訪問窗口服務時的任何安全問題。

對不起,有太多的問題。我早些時候使用過Window Service,但它隨着時間安排。所以從ASP.Net訪問對我來說是新的。

我找到一篇文章http://weblogs.asp.net/kaushal/start-stop-window-service-from-asp-net-page但它並沒有提供我的問題的所有答案。

請在這方面幫助我。提前致謝。

+0

您不一定需要Windows服務。 Azure友好的技術可以安全地運行代碼[在後臺](http:// www。hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx)。 – mason

回答

0

爲什麼要從ASP.Net啓動/停止服務?它是一個Windows服務,讓它每天或每天都要定期運行,或者任意頻率,讓它完成工作或讀取/寫入數據庫並從Facebook合併合約。爲什麼它甚至是一個ASP.Net應用程序,如果是這樣的話。

也許我錯過了一些東西,但是您不需要通過Web應用程序與Windows服務進行交互。你所需要做的就是查詢數據庫。定期讓服務在後臺將FB聯繫人同步到MongoDB。

相關問題