0

capistrano を使用してアプリケーションをデプロイする app1 と app2 の 2 つのインスタンスを持つ運用サーバーがあります。つまり、cap app1 deploy、cap app2 deploy です。

現在、遅延したジョブをスケジュールするように時計仕掛けを構成しています。しかし、アプリケーションがデプロイされた後、時計仕掛けのプロセスが app1 と app2 の両方で実行されるため、ジョブが 2 回スケジュールされます。

カピストラーノに時計仕掛けのプロセスを app2 でのみ実行させるにはどうすればよいですか?

ヒントをありがとう。ミロスラフ

解決

次の設定を deploy.rb に追加します。

set :clockwork_role, :clock

次に、ロール :clock を使用するようにインスタンスを 1 つだけ構成します。つまり、次のようになります。

server 'URL', user: 'deploy', roles: %w{app db web clock}
4

1 に答える 1

1

あなたのケースでは、いくつかの設定変数をtrue1 つのケースではfalseに設定し、2 番目のケースでは に設定し、時計仕掛けを設定するときにそれをチェックできます。

ただし、1 つのステージの異なるサーバーに対して異なる「ステージ」(通常は「ステージング」、「プロダクション」、「QA」、「機能」など) を使用していることに言及したいと思います。Capistrano には「役割」(アプリ、データベース、バックグラウンド ジョブなど) があり、それぞれが複数のサーバーを持つことができます。

また、使用しているカピストラーノのバージョンもお知らせください - 2 から 3 への大きな変更がありました

于 2016-02-21T20:54:24.937 に答える