我知道这是一个糟糕的设计,我正在努力寻找任何不这样做的理由,所以我需要一些帮助.
我有一个正在命中的API端点,需要在最多几秒钟内返回OK响应.目前,我们正在进行调用并处理大量数据,然后返回OK,但是,如果DoLotsOfWork
方法超时,则不会返回OK响应.
public IActionResult DoWork([FromBody] MyDTO myDto){
DoLotsOfWork();
return OK()
}
现在我建议我们迁移到某种类型的队列,让作业(job)在那里运行,但我被拒绝了,因为这项工作将花费很长时间.相反,我被告知要这么做.
public IActionResult DoWork([FromBody] MyDTO myDto){
try{
return OK();
}
catch{
}
finally{
DoLotsOfWork();
}
}
有人知道这样做有什么缺点吗?