使用blender和twisted(python)的服务器端渲染

时间:2010-06-16 09:54:33

标签: python rendering twisted blender

我目前正在处理的项目基本上是一个图像,然后使用命令行中的blender渲染视频。目前我正在使用Twisted来处理请求,但肯定有些事情我做错了,因为它没有按照我的意愿行事。你可以看到程序的here(我已经删除了任何不必要的东西)。

通过生成子进程(我知道Twisted can handle processes)和python script来配置渲染并使用作为纹理提供的图像来完成混合器渲染。

程序需要能够处理尽可能多的连接。目前,子进程一次执行一次渲染,但理想情况下,它会检查CPU /并行渲染的数量,并将数量调整到最佳。每个渲染都是为用户定制的,因此一旦用户渲染完成,他们就应该重新渲染它们(avi文件)。

我的问题是:Twisted是正确的选择吗?还有其他选择吗?如果没有,我的系统实施是否有缺陷?我将不胜感激任何想法或意见!

1 个答案:

答案 0 :(得分:3)

Is Twisted the right choice for this? - 也许吧。

Are there other options? - 是的。

If not, is my implementation of the system flawed? - 是的。在我看来,您的子进程调用是阻塞的:p.wait()

有可能做出你在Twisted中尝试做的事情,但距离它还有很长的路要走。

您需要一个带有Web前端的速率控制的异步任务队列。

您所拥有的是单个线程“网站”上的单页,在提交的作业完成之前不会返回任何HTML。

这可能是扭曲的。然而,使用django + celery实现它可能更容易。

Django:http://www.djangoproject.com/
芹菜:http://celery.github.com/celery/getting-started/introduction.html

以及类似目的的教程:
http://webcookies.org/blog/2009/09/10/rabbitmq-celery-and-django/