我目前正在做的项目基本上是接收一个图像,然后从命令行使用blender渲染一个视频。目前我正在使用Twisted来处理请求,但是肯定有一些事情我做错了,因为它没有按照我希望的方式工作。您可以看到程序here的jist(我去掉了任何不必要的内容)。在
blender渲染是通过生成一个子进程(我知道Twistedcan handle processes)和一个python script来配置渲染并使用作为纹理提供的图像。在
程序需要能够处理尽可能多的连接。目前,子进程一次只进行一次渲染,但理想情况下它会检查CPU/并行渲染的数量,并将数量调整到最佳值。每个渲染都是为用户自定义的,因此一旦用户渲染完成,他们应该获得他们的渲染(一个avi文件)。在
我的问题是:扭曲是正确的选择吗?还有其他选择吗?如果没有,我的系统执行是否有缺陷?如果您对此有任何想法或意见,我将不胜感激!在
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。在
这在twisted中是可能的。不过,使用django+celeri可能更容易实现。在
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/
相关问题 更多 >
编程相关推荐