2011-01-12 17 views
1

私はバックグラウンドでPythonスクリプトを実行する必要があるRailsサーバーを持っています。私はルビーでターミナルコマンドを実行するのと同じように実行できることを知っていますが、パフォーマンスはどうですか? RailsではなくPythonフレームワークを使用する方が良いですか? Railsサーバー上でPythonスクリプトを実行するための最適な方法がありますか?RailsサーバーでPythonスクリプトを実行する方法は?

+0

でデーモンを設定するためのチュートリアルhttp://rubypython.rubyforge.org/? – Amber

答えて

5

定期的に実行する必要がある場合は、cronジョブとして設定してください。特別なパフォーマンス特性はありません。

Rubyウェブサイトからページが要求されたときに実行する必要がある場合は、毎回スクリプトを実行するだけで、Pythonインタープリタを何度も何度も起動する必要があるため、うまく動作しません。

Pythonスクリプトが大規模だが比較的少数のページリクエストからしか呼び出されない場合は、これを取り除くことができるかもしれません。しばしば呼び出されない低速の操作を最適化する時間がない場合もあります。

あなたのウェブサイトの大半がPythonスクリプトの機能に基づいている場合は、はい、Python Webフレームワークに切り替えてモジュールとして読み込むほうがよいでしょう。

Pythonスクリプトがそれほど大きくない場合は、おそらくRubyで書き直す方がよいでしょう。

スクリプトが大きくて頻繁に使用されているが、Pythonへの切り替えを正当化するのに十分なウェブサイトを構成していないというケースがあります。その場合、Rubyがバックグラウンドで話すことができるデーモンにPythonをラップすることを検討したいと思います。

+2

Pythonスクリプトが比較的長時間実行されている場合は、DelayedJobやResqueなどのバックグラウンドジョブプロセッサを使用してPythonスクリプトを実行できます。 –

+0

これは、asyncがオプションの場合に、自分のデーモンをローリングするよりも良い考えです。 – Jim

+0

遅延ジョブの使用とPythonフレームワークの開発には大きな違いがありますか? Pythonスクリプトは大きく、頻繁に使用されます。 私はまだWebサーバーを開発していませんが、私はルビーとレールでの経験があり、Pythonでの経験はありません。それが私が開発を始める前にこの研究を行う理由です。 – ddayan

1

ruby​​から実行するたびにpythonを起動するのにかかるコストがかかります。あなたがライブラリとしてpythonスクリプトを使用することができない限り、コストはPythonフレームワークで同じになります。

関連する問題