IIS Web应用程序的计时器生命周期

时间:2014-03-24 22:01:54

标签: c# iis timer

如果对db的写入失败,我需要向Web请求添加重试逻辑。我想在退出前延迟500毫秒再试两次。在重试期间不需要阻止用户响应。我的问题是,一旦做出回应,计时器是否仍然存活以完成重试,还是在响应后立即被杀?

1 个答案:

答案 0 :(得分:0)

为什么不使用async / await。它可能会让事情变得更容易:

public SomeResult HandleWebRequest()
{
    StartThing(); //not awaited - fire-and-forget
    //return a response
}
public async void StartThing()
{
    //await Task.Yield(); //return control to call site and finish asynchronously
    for(var numTries = 0; numTries < 3; numTries++)
    {
        if(trySomethingThatMightNotWork)break;
        await Task.Delay(5000);
    }
}