我正在开发的Web应用程序需要执行的任务太长,无法在http请求/响应周期中执行。通常,用户将执行请求,服务器将接受此请求,并且运行一些脚本以生成数据(例如,使用povray呈现图像)。异步执行Web应用程序的任务
当然,这些任务可能需要很长时间,因此在向客户端发送响应之前,服务器不应挂起脚本以完成执行。因此,我需要执行异步脚本的执行,并为客户端提供“资源在这里,但没有准备好”,并且可能会告诉它一个ajax端点轮询,以便它可以在准备就绪时检索和显示资源。
现在,我的问题与设计无关(尽管我也非常喜欢这方面的任何提示)。我的问题是:解决这个问题的系统是否已经存在,所以我不重新发明方形轮?如果必须的话,我会使用一个进程队列管理器来提交任务,并把一个HTTP端点发送给ajax客户端,比如“挂起”,“中止”,“完成”专门为这项任务而存在,我主要会喜欢它。
我正在使用python + django。
编辑请注意,这里的主要问题不是服务器和客户端必须如何协商和交换关于任务状态的信息。
问题是服务器如何处理提交和排队很长的任务。换句话说,我需要一个比我的服务器在LSF上提交脚本更好的系统。不,这是行不通的,但我认为这是一个有点太多...
编辑2:我加了奖金,看看我是否能得到一些其他的答案。我检查了pyprocessing,但我无法执行作业提交并在稍后阶段重新连接到队列。
看起来像它正是我需要的。谢谢 – 2009-12-02 03:08:42
不错!看起来像是将来使用的有用框架。凉! – 2009-12-03 02:54:07