3

次の場合、Rails の開発環境で redis と resque を (場合によっては他のプロジェクト、mongod、mysql-server などで) 自動的に開始するようにしたいと考えています。

  • 開発サーバーの起動時rails server

さらに、次のケースで既に実行中のサービスが検出され、実行されていない場合はサービスも開始されると便利です。

  • テストを実行するときは rspec、rspec /spec をレーキします。
  • 起動時はrails console.

をシャットダウンするときrails serverは、開始された子サービスもシャットダウンする必要があります。

このような追加の起動スクリプトの正しい場所はどこですか?

そして、それらが本番環境でも開始されるのを回避するにはどうすればよいですか (/etc/init.d サービスを通じてすべてを実行します)

4

2 に答える 2

2

これらの組み込みタスクの多くは、すでに rake タスクとして利用できます。

すべてを行うマスター rake タスクを作成できます。

たとえば、resque では、「rake resque:start」「rake resque:scheduler:start」などを取得します。

残りに依存する一般的な「開始」タスクを作成できます。同様に、「停止」タスクはすべてをシャットダウンします。

したがって、次のようにします。

rake start # starts all associated processes
rake stop  # stops them all

これは、コードを別の場所にデプロイすることになったときに、Capistrano から使用するのにも非常に役立ちます。Rake タスクは、Capistrano から非常に簡単に呼び出すことができます。

于 2011-03-02T21:58:09.270 に答える