1

我有一个 Web 应用程序,它是内存密集型多线程图像处理器的前端。Web 应用程序在启动大型图像处理任务时内存不足。

如何以不影响分配给 Web 应用程序的内存的方式(例如后台)运行这些任务?

我不熟悉这类问题,但我想.NET 中有技术可以做这件事。我的 Web 服务器正在运行 ASP.NET MVC4,让您了解我所针对的技术。

Ps 优化图像处理器不是问题,因为它的命令行界面工作得很好。

4

1 回答 1

2

嘿,我们也遇到过类似的情况,使用内存密集型任务加载您的网络服务器绝不是一个好主意。Web 服务器非常擅长一件事,即提供网页,如果您要求它做更多事情,那么您将承担很多开销(Web 服务器)来做一些不需要 Web 服务器完成的事情。

我们所做的是使用 Redis 设置了一个消息队列,不确定这是否是确切的,因为您可能需要不同的功能而不是另一个,但这足以让您开始走上这条道路。

https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-redis

这不是您可以使用的唯一队列,我相信 MS 也有一个。然后我们在云中建立了一个服务器,它在同一个队列上监听,它要小得多。一旦事件发生。它处理了它并且...

  • 它更快,因为没有 IIS 开销
  • 一位用户不会影响另一位用户的体验
  • 我可以创建两台较小的机器来完成我试图用一台更大的机器做的事情。

高温高压

于 2013-04-28T06:22:53.017 回答