2014-07-01 56 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。

相关问题