对于我的网站,我需要:
- 记录动作和渲染时间
- 记录某个产品的访问
- 不时汇总选票
- 时事通讯
- 不时在社交网络上发帖
我的方法是创建一个全局过滤器和OnResultExecuted我进行检查和所需的操作。
我有一些疑问:
- 当 OnResultExecuted 运行时,用户是否收到了呈现的页面并且基本上没有等待其他任何内容?我阻止它吗?
- 在 OnResultExecuted 中为此作业启动一个新线程是个好主意吗?
- 这种方法在 ASP MVC 4 中可以吗
对于我的网站,我需要:
我的方法是创建一个全局过滤器和OnResultExecuted我进行检查和所需的操作。
我有一些疑问:
根据 MSDN,在响应写入后调用此方法(http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onresultexecuted(v=vs.108).aspx)所以你不会阻止响应。
除了前两点(操作记录和访问记录)之外,其他点可能会根据任务的大小占用大量资源。
我的建议是为前两个任务覆盖 OnResultExecuted,并使用 Windows 服务(可以很容易地用 C# 编写)在后台执行其他任务。这样,您可以使用成本较低的 clr 线程而不是 iis 工作线程。
在后台运行耗时/资源消耗任务将增加 Web 应用程序的可扩展性
希望这可以帮助