1

私が現在取り組んでいる Rails アプリケーションは、Amazon EC2 サーバーでホストされています。バックグラウンドジョブの実行にResqueを使用しており、そのようなインスタンスが2つあります(本番とステージになります)。また、Resque 監視 Web アプリを /resque ルートにマウントしました (ステージ上のみ)。

ここに私の質問があります:ステージシステム内に複数のホストからのワーカーが登録されているのはなぜですか?どうすればこれを回避できますか?

追加の詳細: 明らかに 3 つの異なるマシンのワーカーが表示されますが、識別できたのはそのうちの 2 つだけです - ステージ (明らかに) とプロダクションです。3 番目には別のアドレス形式 (domU で始まる) があり、それが何であるかはわかりません。

外国人レスキュー労働者

4

2 に答える 2

0

複数の resque サーバー環境で単一の Redis サーバーを共有しているようです。

これを安全に行う最善の方法は、別の Redis サーバーまたは別の Redis データベースまたは名前空間を使用することです。Redis-namespace gem を Resque と共に使用して、各環境の Resque キューとワーカー データを分離できます。

于 2012-12-29T17:13:49.753 に答える
0

未知のものについては本当にお手伝いできませんが、ホストを移動してDNS名を変更したときに同様のことが起こりました. 古いものを一掃する唯一の方法は、マシン上のすべてのワーカーを停止し、IRB を起動してrequire 'resque'Resque.workers. これにより、 resque が知っているすべてのワーカーが一覧表示されます。この場合、約 20 の偽のワーカーが含まれます。その後、次のことができます。

Resque.workers.each do {|worker| worker.unregister_worker}

これにより、実際には存在しないすべてのワーカーが削除され、実際のワーカーが適切に表示されるようになります。

于 2013-02-09T01:43:12.690 に答える