2017-01-04 14 views
0

私は現在、Djangoフレームワーク上に構築されたwebappで作業しています。必要な機能の1つは、ROSと通信できることです。しかし、ROS関数はメインスレッド上で実行する必要があり、djangoが毎回新しいスレッドを生成することを理解しています。このため、ROS関数を呼び出そうとすると、メインスレッドにないために動作しないというエラーが表示されます。私は、別のpythonスクリプトを書いて、それをビューにインポートしてそこから呼び出すことを試みましたが、同じエラーが表示されます。誰もがDjangoでこの問題の回避策を知っていますか?ROSをDjangoで使用することはできますか?

+1

あなたはROSが何であるか説明しませんでした。 –

+0

私はROSがRobot Operating Systemだと思います - ソフトウェア開発者がロボットアプリケーションを作成するためのライブラリとツールを提供します。ハードウェア抽象化、デバイスドライバ、ライブラリ、ビジュアライザー、メッセージパッシング、パッケージ管理などを提供します。 –

+0

@KlausD。アレックスは正しいです。 ROSはロボットオペレーティングシステムです。 –

答えて

1

アプリケーションサーバー(wsgiまたはgunicornなど)の設定でスレッド/ワーカーの数を指定できる必要があります。たとえば、ガンコンを使用する場合はspecify one threadとすることができます。

また、ROSコールをすべてセロリのようなものに入れ、djangoビューからタスクをキューに入れることができます。ガンコーンのように、セロリをシングルプロセスモードで実行すると、セロリがシングルスレッドのように動作します。

関連する問題