您是否必须实时返回“已创建”或“失败”的消息?以下对您的解决方案来说也可能过度,但它确实创建了可扩展的解决方案。
Web服务器可以发送请求该操作的消息(到某种队列)。此时,用户可以继续使用该站点来执行其他操作。后台的Windows服务可以处理消息(在网站的上下文之外),然后通过用户(通过网站内的消息,类似于堆栈溢出通知)或通过电子邮件通知用户任务已运行或失败。
如果您可以近乎实时地处理解耦的处理,那么您可以修改您的Windows服务以进行扩展。您可以拥有一个线程池来管理请求 - 所以也许您一次只能运行5个线程来限制负载。如果遇到更多性能问题,可以扩展并开发一个可以拥有2个或更多队列处理器的系统(这会增加它自己的问题/复杂性)。