2012-09-19 35 views
0

场景:用户加载页面,图像正在生成,显示加载栏,发送到浏览器的通知事件。JavaScript-Python:将动态生成的图像提供给客户端浏览器?

我正在使用python代码来生成图像。拥有一个启动脚本的Web服务器或将一个Web服务器代码嵌入到python脚本中是否理想?一旦图像完成渲染,客户端应该会收到一条消息,说明它已成功显示图像。

这怎么可以架构来支持并发用户呢?简单地为每个导航到网页的新用户启动python脚本就足够了吗?

为这种情况设置实时Web应用程序会矫枉过正吗?尝试确定简单的jQuery AJAX是否足够,或者应该使用Socket.io在服务器和客户端之间建立持久连接。

任何符合我需求的图书馆?

回答

1

我建议不要为每个请求产生一个新的孩子,而是使用一些任务队列管理工具,例如我可以推荐celery

例如,您可以运行一个线程化的python webserver,它将为每个请求产生一个任务。然后每个客户端可以定期询问(javascript/jquery)任务是否完成,如果是,服务器将返回适当的图像地址。另外,芹菜有web-callbacks可以在这种情况下使用。 (我想,我自己并没有使用这个功能)。

我不会浪费时间编写一些临时解决方案,因为它很简单,易于部署,有据可查,并且扩展性很好。

+0

芹菜不同于github的resque? – KJW

+0

它专为python设计;我不熟悉resque,但从规格来看,我认为它是相似的。 –

1

我个人喜欢Socket.IO,我愿意与它。 因为这样会更简单一些。但是,这可能有点太多了。特别是因为从我听到的与Python节点相比,它在Python中并不那么简单,它实际上是10行左右的服务器端。

没有Socket.IO可以做一个长轮询来得到图像处理的状态,并且在base64中得到图像的结尾,如果这是你想要的。

相关问题