1

Railsコミュニティが私の問題に対して作成した可能な解決策の数に少し圧倒されています. ですから、おそらく誰でも、それを最もよく解決する方法を見つけるのを手伝ってくれるでしょう.

私がやりたいのは、一種の「ドロップボックス」のように動作する Rails アプリを作成することです。一方では、Web サーバーにファイルをアップロードおよびダウンロードできる Web インターフェイスである必要があります。これは、私のデータベースやその他すべてと相互作用します。一方、そのサーバーへの SSH アクセスがあり、そこにファイルを手動で配置できます。ここで、このファイル システム アクションが、Rails アプリをトリガーして、Web インターフェース経由でファイルを作成した場合に実行する処理を実行するようにします。

それで、どういうわけかデーモンを書きますよね?
daemons.rubyforge.org/
github.com/mirasrael/daemons-rails
github.com/costan/daemonz
github.com/kennethkalmer/daemon-kitなど、多くのソリューションがあります。

私が望んでいるもう 1 つの機能は、Rails アプリが自動的に起動し、Rails アプリの resp を開始または終了するときにデーモンを停止することです。したがって、「daemonz」が最適なソリューションのようです。しかし、さらにグーグルで検索すると、
github.com/FooBarWidget/daemon_controller/が見つかりました。
これは、より多くの「ハイテク」のようで、パッセンジャーで展開するときに既に使用されています。しかし、Rails を終了するときにデーモンが強制終了されるかどうかはわかりません。そうではないので、アプリにこれを実装する方法を考えています。

ファイルシステムの変更に対応する「もの」を実装する方法は、私にとっては簡単に思えます。私は
github.com/guard/listen/を使用します
(代替案は次のとおりです: github.com/ttilley/fssm )
しかし、このプロトコルに実際に直面したのはこれが初めてであり、これにより、通信できるサーバー、または処理する必要のあるオブジェクトの種類が生成されます。

最後に実装したいのは、一種のワーカー キューです。これにより、ファイル システムの変更のリッスンが Rails アプリのアクションから分離されます。しかし、非常に多くの解決策があるため、1 つを選択するのに完全に圧倒されます:
github.com/tobi/delayed_job/
github.com/defunkt/resque
http://backgroundrb.rubyforge.org/

そして、 http:
//godrb.com/
とは何 ですか? それはどのように私を助けることができますか?

誰かがこれを解決する方法を示唆していますか? どうもありがとう!

1月

PS すべての github プロジェクトへのリンクを投稿したいのですが、残念ながら十分な「評判」がありません。

4

3 に答える 3

0

関連するディレクトリを監視するプロセス(デーモン)の作成を確実に検討したいと思います。そうすれば、Railsアプリはバックエンドについて何も知らなくてもファイルをそこに入れることができ、SSHでも機能します。

デーモンはRails環境をロードし、データベースと通信できます。私は彼らの間のすべてのコミュニケーションをそのレベルに任せます。

Railsアプリで開始/停止することについては...よろしいですか?私はgod(ruby gem)を使用してプロセスを開始/監視します。Rubyアプリも「デーモン化」します。必要に応じて、実際に神にディレクトリ監視プロセスを停止し、Railsが停止したら終了するように指示できます。そして、Railsイニシャライザーから神を解雇することができます。

ただし、railsが実行されていないときにSSHまたはその他の手段を使用してファイルをそのディレクトリに配置する場合は、サーバーの起動時にgodを自動的に起動するスクリプトを/etc/init.dに配置することを検討してください。

HTH

于 2012-05-19T01:10:54.720 に答える
0

ファイルシステムの変更を監視し、変更が発生したときにアクションを実行するには、Guardのようなものが必要だと思います。

神に関しては、あなたは間違いなくそれを調べるべきです。依存するプロセスの開始/停止がかなり簡単になります。私たちはしばらくの間 Bluepill を使用していましたが、バグが非常に多く、それを捨てて God に移行しました。

于 2012-05-19T01:28:13.797 に答える
0

たとえば、スクリプトファイルを作成しようとしましたか:

startDaemon.rb

そしてそれを配置します:

config/initializers/ 

?

于 2012-05-19T09:51:31.743 に答える