問題タブ [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 に答える
3979 参照

python - 離散イベント キューイングのシミュレーション

単一のサーバー キューを実装しようとして行き詰まっています。Norm Matloff の Simpy チュートリアルからいくつかの疑似コードを Python に適合させました。コードはhereです。今、仕事/顧客の平均待ち時間を計算する方法を見つけるのに苦労しています.

この時点で、私の脳は結び目を作りました!ポインタ、アイデア、ヒント、または疑似コードをいただければ幸いです。

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

java - インプロセスのActiveMQプロデューサー/コンシューマーの例?

私はActiveMQをアプリケーションに埋め込まれたインプロセスメッセージキューとして使用することを調査していますが、そのようなアプリケーションを起動する方法に少し行き詰まっています。私はそれをそのように想像しています(もちろん、擬似コード):

私はこれの簡単なバージョンを組み立てようとしましたが、プロデューサーとコンシューマーが永遠に機能するように、または終了するように言われるまで、それらを作成する方法に固執しています。これを行うための最良の方法は何ですか?私は特に糸脱毛の側面について話している。独自のスレッドなどで何が必要/スポーンしたいのか...

私はメッセージキューベースのアプリケーションにまったく慣れていないので、例を詳しく説明してください。

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

c# - 新しい要素を受け取ると、スレッド内のリストを継続的にループします

これにどのようにアプローチするかは本当にわかりませんが、カスタムクラス内で発生したイベントをサブスクライブしています.理想的には、それらをキューに入れ、入ってきたときに先入れ先出しで処理したいと考えていますQueue<T>.これを使って?しかし、私の質問は、メッセージが受信されたときのイベント ハンドラーにEnqueue()あります。そこにあるキューに単純に移動しますか?もしそうなら、新しいアイテムが追加されたときにキューをどのようにクランチすることができますか?

コンストラクターで次のようなメソッドを呼び出すことを検討していました (帽子を握ってください):

確かにこれを行うためのよりエレガントな方法があるに違いありませんか? これは効果的に myQueue にヒットし、要素が含まれているため反復し、私が望むことを行う必要があります。パフォーマンスはどのようになりますか?これを別のスレッドで生成して、スレッドのブロックを回避できますwhile (true)

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

java - Java PriorityQueue removal of arbitrary elements performance

Say I have a java PriorityQueue (which java implements as a heap) that I iterate over to remove elements based on some criteria:

How long does each remove() operation take? I'm not sure whether it's O(log(n)) or O(1).

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

.net - MQMessage への書き込み方法: 複数の書き込み呼び出し、または StringBuilder?

私は WebSphere MQ の初心者です。IBM の .NET クラス (IBM.WMQ) を使用して、要求メッセージを送信し、応答メッセージを取得しています。MQMessage オブジェクトには、さまざまなデータ型用の多数の Writexxx メソッドがあります。さまざまなデータ要素を要求メッセージに書き込む必要があります。私の質問は、個々のデータ要素ごとに適切な Write メソッドを呼び出す必要があるか、それとも StringBuilder で全体を構築してから MQMessage WriteString メソッドを 1 回呼び出す必要があるかということです。

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

python - バックグラウンドで常にループしているスクリプトのペナルティ

このトピックが過去に議論されたことは知っていますが、私はリソースの使用について少し偏執的です。

私が取り組んでいる Web アプリのファイルを zip ファイルにアーカイブするジョブをキューに入れるためのデーモンを作成することを検討しています。次のように動作します。

バックグラウンドで常にループしているプロセスによって、どのような種類のリソースが消費されるでしょうか (zip するものが何もない場合)。気をつけることや注意することはありますか?

編集:

回答のほとんどが睡眠時間について懸念しているようです。一度に 15 ミリ秒間 (コード例で) スリープするようにやみくもに設定しました。私は実際には 15 秒にするつもりでしたが、それを反映するようにコードを「更新」しました。

再度編集:

スクリプトがスリープ状態になるのに妥当な最短時間はどれくらいですか? 5秒は低いですか?このアプリの負荷がどの程度になるか、または新しいジョブがキューに追加される頻度はわかりません。

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

java - 時間制限のあるサービス

MusicbrainzのWebサービスにリクエストを送信するアプリを開発しています。musicbrainzのマニュアルを読んで、Webサービスに対して1秒間に複数のリクエストを行わないようにします。そうしないとクライアントIPがブロックされます。

この制限をサービスクライアントに対して透過的にするために、どのアーキテクチャを提案しますか。

  • メソッド(たとえばgetAlbuns)を呼び出したいのですが、最後のリクエストから1秒後にのみリクエストを行う必要があります。
  • また、一度に10個のリクエストを呼び出したいのですが、サービスはキューイングを処理し、利用可能な場合は結果を返します(非ブロッキング)。

ありがとう!

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

sockets - Raw ソケット受信バッファ

現在、IP 経由のテレコム アプリケーションをテストしています。raw ソケットを開き、リモート側からメッセージを受信します (msgrate@750+msgs/秒、IP を除く約 180 バイトのサイズ)。

Raw ソケットの上には、(TCP と同じように) SCTP と呼ばれるレイヤーがあり、パケットが欠落していることを時々示しています。現在、受信ノードで Wireshark を実行しており、Wireshark でそのパケットを確認できます。

ソケットの受信バッファが小さいため、IP(?) がメッセージをドロップしているように見えます。ただし、IP Pegs(netstat -sv) では、ドロップされたパケットは表示されません。ソケット受信キューを 40000 に設定しようとしましたが、成功しませんでした。

IP層のどのオプションを設定する必要があるか、または設定する必要がある特定のソケットオプションがあるかどうかについてのポインタをいただければ幸いです。

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

spring - Spring統合:WebサービスをFIFOキューに接続する

私はまだSpringIntegrationに苦労しています-これが私のシナリオです:

  1. WebサービスがクライアントAからリクエストを受け取ります
  2. Webサービスはリクエストをキューに入れます
  3. キューコンシューマーはメッセージFIFOを処理し、Webサービスにルーティングされる応答を送信します
  4. WebサービスはクライアントAに応答を送り返します

メッセージをすべてこのキューにフィードする複数のWebサービスがあり、それらが受信された順序で本当に処理されることを確認する必要があります。

スプリングインテグレーションのどの部分を一緒に配線する必要がありますか?

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

java - Javaでマルチスレッドをどのように処理する必要がありますか?

私はJavaに関連する実用的なシナリオに取り組んでいます;ソケットプログラム。既存のシステムと予想されるシステムは次のとおりです。

既存のシステム-システムは、特定の条件が満たされていることを確認します。その場合、送信するメッセージを作成してキューに入れます。

キュープロセッサは別のスレッドです。キュー内にアイテムが存在するかどうかを定期的にチェックします。アイテム(メッセージ)が見つかった場合は、メッセージをリモートホスト(ハードコードされたもの)に送信し、アイテムをキューから削除します。

期待されるシステム-これはそのようなものです。メッセージは、特定の条件が満たされたときに作成されますが、いずれの場合も受信者は同じではありません。したがって、多くのアプローチがあります。

  1. メッセージを同じキューに入れますが、受信者IDを使用します。この場合、2番目のスレッドは受信者を識別できるため、メッセージを受信者に送信できます。

  2. 複数のスレッドを持つ。この場合、条件が満たされ、受信者が「新規」の場合、新しいキューが作成され、メッセージがそのキューに入れられます。そして、新しいスレッドが初期化されて、そのキューを処理します。次のメッセージが同じ受信者に送信される場合は同じキューに入れられ、そうでない場合は新しいキューとスレッドが作成されます。

今、私は2番目のものを実装したいと思います。どうすればいいですか?スケルトンで十分であり、キューの作成方法などを心配する必要はありません... :)

更新:私はまた、アプローチ1がそれを行うための最良の方法だと思います。私は糸脱毛に関するいくつかの記事を読み、その決定に至りました。しかし、アプローチ2の実装方法も学ぶことは本当に価値があります。