繁体   English   中英

在ASP.Net MVC5中管理长时间运行的进程

[英]Managing Long Running Processes in ASP.Net MVC5

我正在开发一个MVC应用程序,其中有多个长时间运行的进程。 在这个MVC应用程序中,我试图从Facebook中拉出朋友并存储在mongoDB中。

此过程的步骤如下:-

  1. 从通用列表对象的数据库中拉出用户的朋友。
  2. 从另一个通用列表对象中的facebook中拉出用户的朋友。
  3. 确定不在数据库中的新朋友。
  4. 对于现有朋友,请运行循环并更新现有数据。
  5. 将新朋友存储在数据库中。

如果他们大约有50到100个朋友,则效果很好。 但是,如果有1000多个朋友,则该网页大约需要30分钟以上的时间来执行它们。 为了执行此过程,我将Task与async和await一起使用。 我正在通过jQuery AJAX调用控制器操作。

所以我的问题是,如果它们是2000多个记录,那么将花费太多时间。 因此,在研究了这个东西之后,我想使用窗口服务从Facebook提取数据。 但是,我仍在探索选项,以便不使用窗口服务。

关于使用窗口服务,我有以下问题:

  1. 如何从ASP.Net MVC启动窗口服务。
  2. 如果可以从ASP.Net MVC控制器在窗口服务中传递参数。
  3. 如果窗口服务将自动停止完成任务,或者我需要从网页上停止它。
  4. 是否可以从Azure的Windows 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,但它没有提供我所有问题的答案。

请在这方面帮助我。 提前致谢。

为什么要从ASP.Net启动/停止服务? 这是一项Windows服务,可以说每天或您想要的任何频率定期运行,并可以完成工作或读取/写入数据库以及合并来自Facebook的合同。 如果仅是它,为什么它甚至是ASP.Net App?

也许我缺少了一些东西,但是您不需要与Web应用程序中的Windows服务进行交互。 您需要做的就是查询数据库。 让服务在后台定期将FB联系人同步到MongoDB。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM