舞者:同时处理多个请求

时间:2013-05-16 10:04:14

标签: perl dancer

这是我的情况:我正在使用Dancer框架开发一个Web应用程序,我想从浏览器端向服务器端的数据库插入一些数据。问题是,当数据太大时,上传需要很长时间,以至于我正在考虑显示描述进度的进度条。

我通过发送两个请求来实现这一点:一个用于发布数据,另一个用于轮询状态。但似乎一旦第一个请求被处理,另一个请求将在第一个完成后才能工作。所以状态没有返回,突然100%。为了管理这个,我在处理第一个请求时创建一个线程,因此主线程可以返回以处理第二个轮询请求。这很有效,直到我必须杀死子线程中产生的一些子进程(这是another question)。

所以我的问题是,除了多线程之外,还有其他任何关于同时处理多个请求的想法吗?通常情况下,Web程序员如何处理这种情况?

2 个答案:

答案 0 :(得分:3)

同时处理多个请求应该没有问题。 你如何运行你的应用程序?如果您使用内置服务器(perl your_app.pl),那么默认情况下它是单线程的,并且一次只处理一个请求。

您可能希望使用mutliprocess / multithread部署选项,例如Starman。它在https://metacpan.org/module/YANICK/Dancer-1.3113/lib/Dancer/Deployment.pod#Running-on-Perl-webservers-with-plackup

中描述

答案 1 :(得分:1)