問題タブ [message-queue]
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.
database - コメント投稿のスケーラビリティ: ユーザーごとの上位 n、1 回の更新、大量の読み取り
これが状況です。数百万人のユーザーのウェブサイト。各ユーザーのページには、メッセージ セクションがあります。誰でもユーザーのページにアクセスして、メッセージを残したり、最新の 100 件のメッセージを表示したりできます。
メッセージは、追加のメタデータを含む短い txt です。すべてのメッセージは永続的に保存する必要があり、リアルタイムで高速でなければならないのは、メッセージの更新と読み取り (人々はチャットとして使用します) だけです。変更を確認するために、多数のメッセージが非常に頻繁に読み取られます。定期的に古いメッセージ (100 件以上) をアーカイブしても問題ありませんが、アクセスできる必要があります。
現在、すべてが 1 つの大きな DB テーブルにまとめられており、メッセージ リストを読んでさらに更新を送信する人々の間の競合が問題になりつつあります。
システムを再設計する必要がある場合、どのストレージ メカニズム/キャッシュを使用しますか? ここではどのようなコンピュータ サイエンス学習を使用できますか? (例: コレクション、リスト アクセスなど)
c# - UIスレッドでデリゲートを実行します(メッセージポンプを使用)
外部サービスとの通信を処理するバックグラウンドスレッドがあります。バックグラウンドスレッドがメッセージを受信するたびに、それをUIスレッドに渡して、さらに処理(ユーザーに表示)します。
現在、Timer.Tickに定期的にプールされ、バックグラウンドスレッドに入力されるスレッドセーフなメッセージキューを作成しました。しかし、このソリューションは最適ではありません。
メッセージポンプを使用して、バックグラウンドスレッドからUIスレッドにイベントを渡す方法を知っていますか?
delphi - Delphi 用の「メッセージ バス」パターンのオープン ソース実装はありますか?
このエンタープライズ統合パターンの実装を探しています
http://msdn.microsoft.com/en-us/library/ms978583.aspx
より一般的な方法で説明する
http://www.eaipatterns.com/Messaging.html
Delphi 用の「メッセージ バス」(またはメッセージ キュー)パターンのオープン ソース実装はありますか。
message-queue - FIFO Qeueingシステムで、優先メッセージを実装するための最良の方法は何ですか
優先メッセージ(AMQPなど)を一貫してサポートしないメッセージ指向ミドルウェアの場合、キューにFIFOセマンティクスしかない場合に、優先消費を実装するための最良の方法は何ですか?一般的な使用例は、メッセージの大量のバックログがキューに存在する場合に、消費者が優先度の低いメッセージの前に優先度の高いメッセージを受信するシステムです。
process - AMQP による配信の遅延と重複メッセージの防止
メッセージを散発的に生成するシステムを使用しており、5 分ごとに 0 または 1 つのメッセージのみを送信したいと考えています。メッセージが生成されない場合、キュー コンシューマによって処理されるものはありません。5 分以内に 100 個の同じメッセージが生成された場合、そのうちの 1 つだけをキューから消費する必要があります。
AMQP(RabbitMQ) を使用していますが、rabbitmq または AMQP プロトコル内でこれを達成する方法はありますか? キューの内容を検査して、重複を挿入しないようにすることはできますか? キューの検査は悪い考えのようであり、通常、メッセージング システムに対して行うべきことではありません。
キュー検査なしで、これらのツールでこれを達成できますか? 頭に浮かぶ唯一の解決策は、すべてのメッセージを取得する 2 つ目のキューを用意し、コンシューマーが各メッセージを読み取って内部キューに入れ、5 分間待機し、受信した重複メッセージを破棄することです。遅延の後、単一のメッセージが「実際の」キューに入れられて処理されます。
これは、キュー システムで処理できる一般的な状況のようです。何か案は?
linux - msgsnd() はスレッドおよび/またはプロセスセーフですか?
2 つの pthread が "同時に" msgsnd() 関数を呼び出して、メッセージを同じメッセージ キューに投稿するとどうなりますか?
2 つのプロセスが同じことをするとどうなりますか? それらがスレッドであるかプロセスであるかは重要ですか?
特に Linux 2.6.15-2.5 に興味がある #1 SMP PREEMPT Tue Sep 19 10:56:25 CDT 2006 x86_64 x86_64 x86_64 GNU/Linux
message-queue - WebSphere MQ キューの作成
AIS.CICSUD1.BROKER.DATA
BO01、BO02、BO03 などのさまざまなプロセス ID によってアクセスされる キューがあります。
異なるプロセス ID に対して同じキューを作成できますか? WebSphere MQ Explorer で試してみましたが、重複キュー エラーが発生します。
キュー マネージャーはローカル マシン上にあり、ローカル マシンからのみキューにアクセスする必要があります。
私にお知らせください
c++ - Win32メッセージハンドラエラーの伝播
単一のダイアログボックスを利用する(C ++)アプリケーションを作成しています。CreateDialogParam
メッセージポンプとハンドラーを設定した後、元のコード(たとえば、を呼び出すコード)にC++例外を伝播する方法を考え始めました。
これが私が意味するもののスケルトンの例です:
ご覧のとおり、WinMain
は「例外2」と「3」を処理しますが、「例外1」は処理しません。
私の基本的な質問は単純です。これらの種類のエラーを元の「呼び出し元」コードに伝播するためのエレガントな方法は何でしょうか。
カスタムメッセージを使用して、実際のthrow
ステートメントをメッセージポンプ(in RunApp()
)に移動することを考えましたが、一般的にWindowsの経験が比較的少ないため、それがどのように機能するかはまだわかりません。
おそらく私はこの状況をすべて間違って見ています。メッセージハンドラーにいるときに、何か致命的なもの(つまり、重要なリソースの取得が失敗し、回復の機会がない場合)が発生した場合、通常はどのように救済しますか?
c++ - メッセージキューから動的な長さのデータを受け取る方法は?
大学のプロジェクトで、SysV メッセージ キューを使用して動的データを送受信する必要があります。
データの長さは別のメッセージで送信されるsize
ため、すでにわかっています。
そして、これが私がデータを受信しようとする方法です。私は C++ の専門家ではないことを認めなければなりません。特にメモリ割り当てに関してはそうです。
問題はmalloc
呼び出しのようですが、これを正しく行う方法がわかりません。
編集
私が試みているのは、メッセージ キューの周りの OO ラッパーに何らかの読み取りメソッドを用意することです。char[]
メッセージ キュー内のデータをまたはに読み込みたいと思いますstd::string
。私が今持っているものは、このように(単純化されて)見えます。
私が得るのは、セグメンテーション違反または完全に破損したデータだけです (ただし、このデータには必要なものが含まれている場合があります)。