IIS web应用的定时器生存时间

本文关键字:时间 定时器 web 应用 IIS | 更新日期: 2023-09-27 17:53:00

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

IIS web应用的定时器生存时间

为什么不使用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);
    }
}