【发布时间】:2017-04-22 07:21:25
【问题描述】:
场景:
我们有一个 Web 应用程序,我们网站中的每个用户都可以在其中添加一些其他社交网站的多个帐户,例如 Facebook、Twitter 等。
我们必须执行一些自动化工作(例如通过 API 从他们的帐户中获取数据,以便为这些用户生成分析数据)
关键点
用户可以为任何帐户启动或停止服务,以停止或开始收集数据以进行分析。
当用户单击开始/停止时,我必须在调度程序中启动自动 Windows 服务/crone 作业/控制台应用程序。
需要解决的问题:
-
对于添加了
n个社交帐户的用户x,我应该为每个帐户启动线程,还是每个用户线程,还是y每个线程的用户数? -
Windows 服务的优化方法是什么?调度程序中的控制台应用程序?或某种可以与 Windows 服务一起使用的数据库触发器?或者像
Quartz.Net或hangfire等第三方库?
Web 应用程序使用 ASP.NET MVC、MSSQL Server、c# 开发并部署在专用的 windows 服务器上。
编辑
- 请记住,如果用户为一个帐户启动一项服务并且不会长时间停止它,我们需要该服务继续工作。
- 我们不希望立即运行服务,我们可以将用户操作延迟一到两分钟。
就像我们可以在一两分钟后而不是每一秒之后读取 Facebook 上的用户活动。
【问题讨论】:
标签: c# asp.net-mvc multithreading windows-services console-application