Рендеринг на стороне сервера с использованием Blender и Twisted (Python) - PullRequest
3 голосов
/ 16 июня 2010

Проект, над которым я сейчас работаю, в основном берет изображение, а затем воспроизводит видео с помощью blender из командной строки. В настоящее время я использую Twisted для обработки запросов, но, безусловно, я что-то не так делаю, потому что это не работает так, как мне бы хотелось. Вы можете увидеть jist программы здесь (я удалил все ненужное).

Визуализация блендера выполняется путем запуска подпроцесса (я знаю, что Twisted может обрабатывать процессы ) вместе с сценарием Python для настройки рендеринга и использования изображения, предоставляемого в качестве текстуры. .

Программа должна иметь возможность обрабатывать как можно больше соединений. На данный момент подпроцесс выполняет один рендеринг за раз, но в идеале он будет проверять ЦП / число параллельных рендеров и корректировать это число до оптимального. Каждый рендер настраивается пользователем, поэтому, когда рендеринг пользователя завершен, он должен получить свой рендер (avi-файл).

Мой вопрос таков: Twisted правильный выбор для этого? Есть ли другие варианты? Если нет, моя реализация системы имеет недостатки? Буду признателен за любые мысли или мнения по этому поводу!

1 Ответ

3 голосов
/ 16 июня 2010

Is Twisted the right choice for this? - Возможно.

Are there other options? - Да.

If not, is my implementation of the system flawed? - Да.Мне кажется, что ваш вызов подпроцесса блокируется: p.wait()

Можно сделать то, что звучит так, как вы пытаетесь сделать в Twisted, но вы очень далеки от этого.

Вам нужна асинхронная очередь задач с контролируемой скоростью и веб-интерфейсом.

У вас есть одна страница на однопоточном «сайте», которая не возвращает html, пока не будет отправленоработа закончена.

Это возможно в витой.Однако это, вероятно, проще реализовать с помощью django + celery.

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

И учебное пособие для аналогичной цели:
http://webcookies.org/blog/2009/09/10/rabbitmq-celery-and-django/

...