我有一个基于 MVC3 在 Azure 上运行的 Web 角色场,可能需要每秒处理约 50k API 调用。调用会很快,他们所做的只是将一些数据添加到 Azure 存储队列(我知道那里的配额,我确实对我的队列进行了分区)。API 不会将任何值/状态返回给客户端。目前,每次通话大约需要 100-200 毫秒。
目前我将它设置为 AsyncController,我的代码如下。
我的问题是 - 这是处理此类负载的最可扩展、最有效和最快的方法吗?
PS - 有人告诉我这TaskCreationOptions.LongRunning
是推荐的,真的吗?
任何帮助是极大的赞赏!
public class ApiController : AsyncController {
public void CallAsync(string data) {
AsyncManager.OutstandingOperations.Increment(1);
Task.Factory.StartNew(() => {
// add to my queue here
AsyncManager.OutstandingOperations.Decrement();
}, TaskCreationOptions.LongRunning);
}
public void CallCompleted() {}
}