我目前正在通过我的一个动作调用Facebook图形API,它返回一个带模型的局部视图。视图返回一些隐藏给大多数网站用户的数据(它主要用于搜索引擎优化)。
我们有一些软件监控从我们网站调用外部API所花费的时间,我们时不时地注意到Facebook Graph API需要很长时间才能响应,导致我们的用户永远等待一个页面加载(即使他们甚至可能看不到我们试图从API撤回的内容)。看到此调用不是业务关键,我需要一种方法来让上述操作简单地返回EmptyResult()
并且在给定的超时时间之后不再费心等待来自Facebook API的响应。
有没有人知道我可以在操作上设置超时的方法,然后在超出超时时返回EmptyResult?
答案 0 :(得分:0)
不幸的是,MVC中没有任何东西(开箱即用)可以让你做这样的事情。
但是,如果你正在使用MVC2或3,你可以使用asynchronous action methods并将你的工作交给一个CLR线程,同时启动一个Timer,它将向ASP.NET发出信号({{3返回一个EmptyResult(如果CLR线程没有完成)。