我有一个.net webapi项目,有时候想要快速返回给调用者,然后立即做一些需要更长时间的事情,比如发送电子邮件。我知道这最好用Worker Role, proper scheduler, etc完成,从长远来看,我会这样做。但是在短期内,我建议使用WebClient来称呼自己。这对我来说感觉不错,但我想不出足够好的理由。我目前正在使用.net 4.5.1,因此无法使用QueueBackgroundWorkItem,尽管这似乎是最简单的解决方案。在这种情况下,我很高兴接受这样的风险:如果呼叫失败,将不会通知原始呼叫者,例如:如果无法发送电子邮件。
关于为什么这是/不是一个坏主意的一些想法:
它会通过IIS作为单独的请求路由来对资源施加过度负载......但在这种情况下,性能影响可以忽略不计(即我们没有太多负载),所以这不是一个问题。
在负载均衡的情况下,它可能不会转到同一个Web服务器,这感觉不对。但这似乎不会导致任何问题。
它需要传递一个身份验证令牌,但确保工作正常非常简单。
如果我发起新的webapi呼叫,那么我的elmah日志记录将很好地跟踪任何问题。
这是一种非常糟糕的做法,在这种情况下,为什么或者这是合理的做法?