2011-11-21 77 views
1

我目前正在从我的一个操作中调用Facebook图形API,它会返回一个模型的部分视图。该视图返回了大多数网站用户隐藏的一些数据(它主要用于搜索引擎优化)。MVC3操作超时后返回EmptyResult?

我们有一些软件可以监控从我们的网站调用外部API所需的时间,我们现在注意到Facebook Graph API需要很长时间来响应,导致我们的用户永远等待页面加载(即使他们可能甚至不会看到我们试图从API中撤回的内容)。看到这个电话并不是商业重点,我需要一种方法来获得上述操作,以便简单地返回一个EmptyResult(),并且在给定的超时时间段之后,不用等待Facebook API的响应。

有谁知道一种方法,我可以设置一个超时的动作,然后返回一个EmptyResult,如果超时超时?

回答

0

不幸的是,MVC中没有任何东西可以让你做这样的事情。

但是,如果你使用MVC2或3,你可以使用asynchronous action methods和你的工作移交给一个CLR线程并同时开始一个Timer,将信号到ASP.NET(using AsyncManager.Sync)返回一个EmptyResult(如果CLR线程工作尚未完成)。