3

私が現在取り組んでいるプロジェクトは、基本的に画像を取り込み、コマンド ラインから Blender を使用してビデオをレンダリングします。現時点では、リクエストを処理するためにTwistedを使用していますが、希望どおりに機能していないため、間違っていることがあります。プログラムの要旨はこちらでご覧いただけます(不要なものは取り除いています)。

ブレンダーのレンダリングは、レンダーを構成し、テクスチャとして提供された画像を使用するためのPython スクリプトと共に、サブプロセス (Twistedがプロセスを処理できることは承知しています) を生成することによって行われます。

プログラムは、できるだけ多くの接続を処理できる必要があります。現時点では、サブプロセスは一度に 1 つのレンダリングを実行しますが、理想的には CPU/並列レンダリング数をチェックし、数を最適に調整します。各レンダリングはユーザーに合わせてカスタマイズされるため、ユーザーのレンダリングが完了したら、レンダリングを元に戻す必要があります (avi ファイル)。

私の質問は: Twisted はこれに適した選択ですか? 他のオプションはありますか?そうでない場合、システムの実装に欠陥がありますか? これについての考えや意見をいただければ幸いです。

4

1 に答える 1

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 を使用して実装する方がおそらく簡単です。

ジャンゴ: http://www.djangoproject.com/
セロリ: http://celery.github.com/celery/getting-started/introduction.html

同様の目的のチュートリアル:
http://webcookies.org/blog/2009/09/10/rabbitmq-celery-and-django/

于 2010-06-16T10:43:07.977 に答える