問題タブ [bunny]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
595 参照

ruby-on-rails - RabbitMQ は、永久に有効なキューを大量に生成します

私の問題を解決するための助けをいただければ幸いです。

私は Rabbitmq を使用しており、生成されたキュー (amq.gen-pMJVWygd3iLb_buXp1oUyw のような名前) がたくさんあります。これらは耐久性があり、永久に残ります。

そのようなキューは、core.timeout を交換しますが、core.timeout を処理する必要があるキューもあります。

そのため、私はこの瞬間に立ち往生しており、このキューが生成される場所を見つけることができません。

0 投票する
1 に答える
451 参照

rabbitmq - RabbitMQ の強制公開を待っていますか?

バニー (Ruby) で RabbitMQ を使用して、パブリッシュしたいのですが、ファンアウト交換から消費するキューがない場合、メッセージの損失を回避したいと考えています。私の図書館の観点から、私は返却を待って、メッセージが送信されたかどうかにかかわらずクライアントに明確な回答を与えるつもりです. これを達成する唯一の方法は、これで眠ることですか?

0 投票する
2 に答える
990 参照

ruby-on-rails - 各パラメーターを明示的に言及せずに、yaml ファイルからコンストラクターにパラメーターを渡す方法は?

Bunny を使用して RabbitMq 接続を設定するための初期化スクリプトがあります。

の内容は次のconfig[Rails.env]とおりです。

コマンドの詳細な構文はBunny.new正しく機能します。ただし、冗長ブロックをコメントアウトして、次の構文を残すと:

次のエラー メッセージが表示されます。

どちらの場合もキーは同じなので、うまくいくと思っていました。各パラメーターを明示的に指定せずにコンストラクターを呼び出す方法はありますか?

"<<"=>nilyaml ファイルから行を削除しようとしましたが、動作は変わりませんでした。

0 投票する
0 に答える
711 参照

ruby - ruby の bunny によって生成され、rabbitmq に公開された大きなメッセージが base64 にエンコードされる理由

bunny gem を使用して、json 文字列であるメッセージを rabbitmq サーバーに公開しています。コードは次のとおりです。

ただし、rabbitmq サーバーから取得するのは、base64. 公開するメッセージ(コード内の値)は 90000 サイズを超えています。すべての文字列をエンコード ツールにコピーして、乱雑な文字列を でデコードすることbase64で解決します。公開されたデータは、角かっこ、コンマ、またはいくつかのキー/値がないため、切り捨てられているようです。

それで、ここに私の質問があります.rabbitmqに巨大なメッセージを公開することは提案されていませんが、なぜデータがbase64にエンコードされ、なぜ切り捨てられるのか.

何か案は?どうも。

0 投票する
1 に答える
1178 参照

multithreading - sidekiqスレッドのシングルトンは可能ですか?

したがって、Sidekiq スレッドごとに 1 つの RabbitMQ 接続とチャネルを作成できる必要があります。作成しないと、RabbitMQ 接続が不足し、ドキュメントで提案されているためです。ドキュメントはUnicornでそれを行う方法を示しています:

Sidekiq スレッドで同様のことを行うことは可能ですか? でできることはありSidekiq.server_configureますか?これはSidekiqがスレッドを開始する場所のようですが、開始/停止にフックする方法がわかりませんか?

0 投票する
1 に答える
3480 参照

rabbitmq - パターンに一致しない RabbitMQ トピック交換でメッセージをルーティングする

2 つのキューは、次のルーティング キーを使用してトピック交換にバインドされます。

ルーティング キー パターン マッチでバインドされたキュー A ルーティング キー パターン マッチ*.foo
でバインドされたキュー B*.bar

fooメッセージでもメッセージでもないメッセージを受信する 3 番目のキューをこの交換に追加したいと思いbarます。このキューを#ルーティング キーにバインドすると、必要なすべてのメッセージが自然に取得されますが、不要な と が含まfoobarます。

NOT *.fooパターンにパッチを当ててメッセージをルーティングする方法はありますNOT *.barか?

0 投票する
1 に答える
224 参照

ruby-on-rails - ROR で Bunny 経由の TCP 接続を管理する

AWS でメッセージ キューイング システムを作成する方向に進んでいます。マイクロ サービスは、Bunny 経由で Rabbit MQ と通信します。取引所に接続して公開することはできますが、TCP 接続は一定時間 (20 秒だと思います) 後に切断されます。バニーは再接続を試み、正常に再接続します。

私の質問は、rabbit mq doco によると、毎回新しい TCP を開くのではなく、TCP 接続でチャネルを使用する必要があるということです。ROR で 1 つの tcp 接続を管理する最良の方法は何ですか? リクエストごとに 1 つの TCP を作成する必要がありますか?

0 投票する
0 に答える
106 参照

ruby-on-rails - このrabbitmqコンシューマーコードはどこに置くことができますか?

bunnyを使用するこのコードは、rabbitmq キューに発行されたメッセージをリッスンし、メッセージが消費されるたびにビューにフラッシュ通知を表示する必要があります。コンシューマーは、同じアプリケーション内にありますが、プロデューサーとは別のセッションで実行されています。アプリケーションは、メッセージ受信者の電子メールを routing_key として使用する直接交換を使用します。current_user の電子メールに似たメッセージrouting_keyが公開されたときに、ページを更新せずにそのユーザーに新しいメッセージがあることを示すフラッシュ メッセージが表示されるようにしたいと思います。Facebook の通知と同様の動作が必要です。

プロデューサー コードは次のようになります。

コンシューマ コード: 次のようになります。

問題は、消費者コードをどこに置くべきかわからないことです。コードをメソッドとしてアプリケーション コントローラーに配置しようとしましたが、うまくいかないようです。これを改善する方法についての提案は大歓迎です。