我有一个网站,用户可以上传PDF并将其转换为WORD文档。
它运行良好,但有时(每小时5-6次)用户需要等待比通常更长的时间才能进行转换...
我使用ASP.NET MVC,流程如下: - 用户上传文件 -> 获取流并将其转换为Word -> 将Word文件保存为临时文件 -> 返回用户URL
我不确定是否必须将此流程转换为异步?基本上,我的流程现在是顺序的,但我每秒大约有3-5个请求,CPU是双核和4 GB RAM。
而且我知道maxConcurrentRequestsPerCPU为5000;Threads Per Processor Limit的默认值为25;所以这些默认设置应该足够了,对吧?
那么为什么我的Web应用有时候还是会出现“等待”情况?我需要修改默认的IIS设置还是应该将同步方法改为异步进行转换?附注:转换本身需要1秒到40-50秒不等的时间,具体取决于PDF文件的大小。
更新:基本上我不太清楚的是:如果用户上传一个文件并且转换时间很长,那么只有当前请求会因此而“受苦”,对吗?因为下一个请求是独立的,会产生另一个CPU调用和不同的线程,所以这里不应该有等待,对吗?
它运行良好,但有时(每小时5-6次)用户需要等待比通常更长的时间才能进行转换...
我使用ASP.NET MVC,流程如下: - 用户上传文件 -> 获取流并将其转换为Word -> 将Word文件保存为临时文件 -> 返回用户URL
我不确定是否必须将此流程转换为异步?基本上,我的流程现在是顺序的,但我每秒大约有3-5个请求,CPU是双核和4 GB RAM。
而且我知道maxConcurrentRequestsPerCPU为5000;Threads Per Processor Limit的默认值为25;所以这些默认设置应该足够了,对吧?
那么为什么我的Web应用有时候还是会出现“等待”情况?我需要修改默认的IIS设置还是应该将同步方法改为异步进行转换?附注:转换本身需要1秒到40-50秒不等的时间,具体取决于PDF文件的大小。
更新:基本上我不太清楚的是:如果用户上传一个文件并且转换时间很长,那么只有当前请求会因此而“受苦”,对吗?因为下一个请求是独立的,会产生另一个CPU调用和不同的线程,所以这里不应该有等待,对吗?