此Web应用程序是否需要任务队列?

ran*_*son 8 python architecture celery

背景

我有一个Web应用程序,将从用户输入创建一个图像.图像创建可能需要几秒钟.

问题

如果我让服务器线程,即处理请求/响应也生成图像,这将占用一个线程几秒钟,并可能使我的服务器陷入困境,影响性能,杀死小狗等.

我是否应该使用任务队列(例如Celery),以便服务器可以切换图像创建,然后返回处理请求/响应? 让创建图像的用户等待,我没有问题,但我不希望它影响其他人访问该网站.

Ano*_*nym 6

我要说不 - 现在.

  • 几秒钟不是那么久.
  • 无论如何,你必须实施某种轮询(或彗星处理)来将图像反馈给用户.
  • 它会使你的系统更复杂.
  • 设计系统,以便以后添加任务队列是可行和容易的.

因此,首先要保持简单并使其正常工作,但请记住,您可以稍后添加任务队列.

在/需要扩展时实现该任务队列.