コンソール、ジェネレータ、dbconsole、test、destroy、runner、rakeコマンドが実行されていないときにのみ、FTPリスナークラスを実行します。rails 5サーバーの起動後にのみスクリプトを実行する
defined? Rails::Generators
のようなチェックを使って、レール3と4で同じことをしている人がいますが、レール5で動作させることができません。定義されたチェックでは何も返しません。
コンソール、ジェネレータ、dbconsole、test、destroy、runner、rakeコマンドが実行されていないときにのみ、FTPリスナークラスを実行します。rails 5サーバーの起動後にのみスクリプトを実行する
defined? Rails::Generators
のようなチェックを使って、レール3と4で同じことをしている人がいますが、レール5で動作させることができません。定義されたチェックでは何も返しません。
config.ru
ファイルはWebサーバでのみ使用され、コンソールスクリプト、レーキタスク、またはテストスイートによってロードされません。あなたがそこに置くのは、サーバーインスタンスが起動したときにのみ実行されます。
Webサーバー自体にもこれを行う方法があります。たとえば、Pumaを使用するときは、on_worker_boot
またはafter_worker_boot
のようなフックがあります(http://www.rubydoc.info/github/puma/puma/Puma/Configuration/DSL)。
しかし、これを配備されたサーバー環境とRailsアプリケーションに統合することをお勧めします。
@Christophに返信していただきありがとうございます。レールサーバーではなくサーバー環境で統合する方がいい理由を説明してください。 – Subash
懸念の分離、あなたはすでにRailsアプリケーションが両方を行っているときの問題について記述しています。デプロイメントによっては、アプリサーバーが5人のように動作することがあります。つまり、5つのFTPリスナーを実行していることになります。長期的には、アプリケーションの規模を拡大したい場合は、アプリケーションサーバーをFTPリスナーとは別のサーバーインスタンスに移動します。 –