2011-08-18 5 views
0

私はストリーミングAPIを解析し、データをデータベースに入力するレーキタスクを持っています。ストリーミングAPIはライブフィードであり、ライブデータがデータベースに入るためにレーキタスクが継続的に実行される必要があります。一度呼び出されたレーキタスクは、連続的に実行され、データを解析します。今私はレーキタスクを開始し、それが実行されています。問題は、端末を閉じたり、サーバを再起動すると、レーキタスクが停止するということです。だから、私は次の処理を行い、(開始、またはApacheサーバーを停止するために使用されるもののようなもの)のLinuxでスクリプトをしたい:Linuxのスクリプトを使って連続的なレーキタスクを実行する(開始、停止など)

1. start the rake task by calling rake command (rake parse:stream) from the RAILS-ROOT (application directory of Rails app) 
2. stop the rake task by killing the process. 
3. start the rake task automatically when the server reboots. 

私はLinuxのスクリプトに慣れていないと私は開始する場所を知りません。私はubuntuサーバーを使用しています。誰でも助けてくれますか?

答えて

1

デーモンとしてスクリプトを実行する必要があります。この種の起動スクリプトを作成すると、通常は2つのファイルが作成されます.1つは/etc/init.dにあり、start/stop/status/restartコマンドを処理し、もう1つは実際にジョブを実行し、最初のスクリプトによって呼び出されます。

Hereがあります。デーモンスクリプトはperlで書かれていますが、いくつかのコマンドラインだけを実行したいので、perlスクリプトのデーモン化は簡単に実行できます。

デーモン化スクリプトにはruby gemsもあります。したがって、レーキタスクを実行するスクリプトをrubyに書くことができます。

ハードコアに行きたい場合は、デーモン化できるbashスクリプトを作成するためのソリューションがありますが、そのようなソリューションはお勧めできません。少なくとも私はそれらを使うのはかなり難しいと思う。

+0

最初の解決策を使用するためにperlをインストールする必要があります – rubyprince

1

Take a look:それはRubyのアプリケーションとその関連プロセスを管理するためのさまざまなオプションを議論しました。

本来、特定のタスクの開始/再開/停止のタスクを作成します。この場合はresque:workです。 restart_workersタスクは単に他のタスクstop、startを呼び出すことに注意してください。あなたが望むものを変更するのは本当に簡単です。

関連する問題