問題タブ [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.

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

architecture - RabbitMQ でキューイングするためのアーキテクチャのコメント?

基本的に、メッセージをキューに入れることができるキューイング技術が必要です。これらのメッセージは、後で SMS テキストとして送信されます。API について調べてみると、RabbitMQ は非常に適しているようです。

私の現在のアーキテクチャ計画:

  1. クライアントは、RabbitMQ でメッセージをキューに入れます。
  2. 別のデーモンが RabbitMQ からメッセージを読み取り、それらをサードパーティの SMS ゲートウェイに送信します。デーモンは、複数のリスナー スレッドを生成できる必要があります。
  3. Ubuntu Hardy を使用して、slicehost.com ですべてをホストする予定です。

この設計に何か問題があると思いますか? 私は Erlang について大雑把な知識しか持っていないので、本番環境でそれを実行する方法についてはまったく考えていません。Erlang や RabbitMQ の経験があれば、戦争の話を聞きたいです。

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

java - Size=1 の Java BlockingQueue?

基本的に、サイズ = 1 の BlockingQueue が必要です。単純に待機し、オブジェクトがキューに入れられるまでブロックしてから取得する「リスナー」スレッドと、実際にオブジェクトをキューに入れる「プロデューサー」スレッドがあります。

いくつかの同期ブロックと BlockingQueue 実装でこれを実装できますが、それはやり過ぎのようです。私がやりたいことをするためのより良い、より簡単な方法はありますか?

インターフェースの例:

0 投票する
8 に答える
70176 参照

c - C で循環リスト (リング バッファ) を実装するにはどうすればよいですか?

いっぱいになったときに最も古いエントリを上書きする循環リストを実装するにはどうすればよいですか?

ちょっとした背景として、GWT 内で循環リストを使用したいと考えています。したがって、サードパーティのライブラリを使用することは私が望んでいるものではありません。

0 投票する
3 に答える
1100 参照

sql - cron のキューまたはキューとして機能する cron スクリプト?

誰かがすでにこれを解決しており、Google で間違った検索用語を使用して答えを教えてくれているのではないかと思いますが、これが私の状況です。

実行したいスクリプトがありますが、スケジュールされたときにのみ実行し、一度に 1 つだけ実行したいと考えています。(スクリプトを同時に実行することはできません)

スティッキーな部分は、必要なデータとスケジュールされた時刻を含む「myhappyschedule」というテーブルがあると言うことです。このテーブルには、同時に複数の時刻をスケジュールすることができ、それぞれがこのスクリプトを実行します。したがって、基本的に、スクリプトが起動するたびにキューが必要であり、スクリプトが終了する前にすべてのキューが待機する必要があります。(スクリプトの実行に 1 分かかることもあれば、何分もかかることもあります)

私が考えているのは、myhappyschedule を 5 分ごとにチェックし、スケジュールされているものを収集し、それらをキューに入れ、別のスクリプトがキュー内の各「ジョブ」またはオカレンスを順番に実行できるスクリプトを作成することです。これはすべて面倒に聞こえます。

これを長くするために、私は、ユーザーが crontab を編集するのではなく、myhappyschedule で物事をスケジュールできるようにしていると言わなければなりません。

これについて何ができるでしょうか?ファイルロックとスクリプト呼び出しスクリプト?

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

queue - JMS キュー内のメッセージの置換

異なるプロセス間でリクエストを渡すために activemq を使用しています。場合によっては、キューに複数の重複したメッセージ (リクエスト) があります。1つだけ持っていたいです。古いメッセージを同様の属性に置き換える方法でメッセージを送信する方法はありますか? 存在しない場合、キューを調べて特定の属性を持つメッセージを確認する方法はありますか (この場合、古いメッセージが存在する場合は新しいメッセージを送信しません)。

明確化 (Dave の回答に基づく): 実際には、消費者がメッセージを受け取るたびに発生する処理の量を減らすために、キューに重複したメッセージがないことを確認しようとしています。したがって、メッセージを置き換えるか、キューに入れないようにしたいと思います。

ありがとう。

0 投票する
5 に答える
8118 参照

database - メッセージング システムのテーブルに対するキュー

私は実際の運用環境でメッセージング システムの良い面と悪い面を経験してきました。よく整理されたテーブルまたはテーブルのスキーマは、他の形式のメッセージング キューよりも優れていることを認めなければなりません。その理由は次のとおりです。

  1. データはテーブルに永続的に保存されます。キャッチされない例外やその他のバグのために途中でメッセージが失われたり消えたりする、非常に多くの Java (jms) アプリケーションを見てきました。
  2. キューはいっぱいになる傾向があります。代わりに、DB ストレージは事実上無限です。
  3. テーブルには簡単にアクセスできますが、難解な手段を使用してキューから読み取る必要があります。

それぞれのアプローチについてどう思いますか?

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

logging - すべてのメッセージのJMSキューロギング/ブラウジング(キューの非表示コンシューマ)(OpenJMS)

JMSキューを参照/ログに記録するための優れた方法があるかどうか、考えがありますか?(私はOpenJMSを使用しています)

トピックについては、もう1つのコンシューマーを追加するだけで済みます。それだけですが、キューを使用しても、まだソリューションを完成させていません。特定のキューとトピックにあるすべてのメッセージを、キューから「ポップ」せずにログに記録したいと思います(これにより、ロガーはキューを「非表示」に参照できます)。

javax.jms.QueueBrowserを使用すると、キューのスナップショットを取得できますが、「リスナーソリューション」を提供していないようです。無限ループでキュー上のすべてのメッセージを何度も読み取り、両方のメッセージが書き込まれないことを期待しています。スナップショットの前に消費されました-それは良い解決策のようには思えませんでした。

もう1つのオプションは、「論理キュー」ごとに2つのキューを作成することです。1つはロガー用、もう1つは実際の使用用です。ロガーはメッセージを「実際のキュー」に転送します。これは機能する可能性がありますが、より良い解決策があるでしょうか。

したがって、誰かが「見えない」ロガーによってキュー内のすべてのメッセージを取得するソリューション、またはロギングのための他の優れたソリューションを持っている場合、それはクールです。

0 投票する
4 に答える
1621 参照

queue - テーブルを使用したキュー

テーブルを使用してキューを実装する必要があります。ビジネス要件は、次のジョブを取得するために 5 ~ 10 個のボックスがアクセスする単一のキューを持つことです。1 日あたり 5000 以上のジョブはありません。また、ジョブのバッチは一度に「デキュー」する必要があります。

以前に行ったことがないので、私が遭遇する可能性のある問題領域と問題は何なのかと思っています。誰かがこれに直面した/これを以前に行ったことがある場合は、設計/サンプルの実装、または対処する必要がある問題を教えてください。

ありがとう

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

.net-3.5 - ObservableQueue?

INotifyCollectionChanged を実装する .Net のジェネリック Queue のバージョンを作成した人はいますか、それとも .Net フレームワークのどこかにすでに隠されているものはありますか?

0 投票する
8 に答える
1594 参照

java - 使用するのに最適なコレクション?

ログ ファイルを読んでいますが、すべての行をすぐに処理したいわけではありません。キュー/バッファを使用して、処理されるのを待っている間に行を保存しています。

このキューは定期的に特定の行をスキャンされます - それらが見つかると、それらはキューから削除されます (行はどこにでもあります)。特定の行が見つからない場合、行はキューの先頭から 1 行ずつ取り出されて処理されます。

したがって、キューには次のものが必要です。

  • サイズ変更可能(またはその印象を与える)
  • どこからでも要素を削除する
  • 要素が追加されている (常にキューの最後にある)
  • すばやくスキャン
  • パフォーマンスに応じて、最後のスキャンで到達した場所のポインタを用意してください。

Java や API の経験がほとんどないときに最初にコードを書き、ArrayList が機能することを知っていたので (必ずしもそれが最適なオプションだったというわけではありません)、単に ArrayList を使用しました。

処理する必要のあるログがますます多くなり、パフォーマンスが低下しています。この状況で使用するためにどのコレクションをお勧めしますか? 自分で書く可能性も常にあります。

ありがとう