我们希望计算ASP.NET MVC应用程序中某些操作运行的时间。每次调用控制器操作时,我们都使用ActionFilters来启动和停止计时器。结果是一个小数据集,有点像这样:
{
ContollerName: 'Account',
ActionName: 'Index',
ExecutionDuration: 287,
TimeRecorded: '2009-07-02 17:34:54'
}
我们希望将这些数据传输到Web服务,以便我们可以收集并稍后对其进行分析。例如,我们可以发现帐户/索引是应用程序中最慢的操作。
问题是,如果我们每秒收到1,000个请求,那么每秒拨打1,000个服务电话并不是很聪明;它会损害应用程序性能。
有没有办法进行缓冲服务调用?或者有没有任何图书馆可以做到这一点?或者我们的架构都错了!?
赞赏的想法。
答案 0 :(得分:3)
我通常不会只是在这里链接问题的答案,但是whiletrue.com的人在这里对MVC进行了很好的分析。他的幻灯片展示了他所做的所有事情。
答案 1 :(得分:0)
您可以使用可以获取这四个值的操作创建一个控制器,只需点击您自己的站点,然后在该控制器中将信息排队到数据库。然后有一个不同的进程批处理将信息提交给您的Web服务。