問題タブ [task-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 投票する
3 に答える
1229 参照

msmq - Quartz.net および/または MSMQ?

特定の時点でタスクを実行する必要があるアプリを作成しているので、Quartz.NET を使用する予定です。ただし、実行する必要があるタスクには複数のステップがあり、そのうちのいくつかは少し集中的である可能性があるため、MSMQ のようなものを使用してタスクの各部分をキューに入れ、負荷を分散するより小さな焦点のサブタスクを持つことを考えていました。ワンビットタスク。

これに関する唯一の問題は、タスクを確実に完了するために使用したい Quartz.NET の失敗したタスク機能をバイパスすることです。

Quartz.NET を単独で使用してすべてを行う方法を提案できる人はいますか? または、MSMQ を使用して、Quartz.NET の「タスク失敗」機能を引き続き使用する方法を教えてください。(または私が知らないかもしれない他の方法?)

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

python - numpy キューとマルチプロセッシング キューの組み合わせにより、キューの順序が乱れる

マルチプロセッシングを行うために次のパターンを使用しています。

これはうまくいきます。しかし、 を介して numpy 配列を送信するとoutQ'STOP'が の最後に終わらずoutQ、結果取得ループが早期に終了します。

これは、動作を再現するためのコードです。

result = np.random.rand(1,100)を次のようなものに置き換えるとresult = i*i、コードは期待どおりに機能します。

ここで何が起きてるの?ここで根本的に間違ったことをしていますか?すべてのプロセスまでのブロックがすべてoutQ.put()のs.inQ.join()join()put()

私のために働く回避策は、結果をフェッチするループをwhile outQ.qsize() > 0で実行することです。しかし、私が読んだことqsize()は信頼できません。信頼できないのは、さまざまなプロセスが実行されている間だけですか? qsize()を行った後、私が頼りになるのは安全inQ.join()ですか?

を使用することを提案する人もいるとmultiprocessing.Pool.map()思いますが、numpy 配列 (ndarrays) でそれを行うと、pickle エラーが発生します。

ご覧いただきありがとうございます。

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

python - タスクキューは正確な/おおよその実行時間を設定しました

指定された速度(5 / s、100 / h)で実行されるGAEでスケジュールされたタスクの正確なまたは少なくともおおよその実行時間を設定することは可能ですか?

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

c# - キューイングに関する C# のアドバイス

割り当てられたプロジェクトについてアドバイスを求めており、それが「専門的に」どのように行われたか、または正しい方向に導くことができる提案を探しています.

クライアントからのコマンドを受け取り、バイト ストリームをシリアル ポートにプッシュするサーバー ピースがあります。複数のクライアントがこのサーバー ピースにコマンドを送信できますが、ハードウェアは一度に 1 つのコマンドしか処理できません。私の問題は、ソフトウェア側でのキューイングにあります。

Queue<T>要求しているクライアント番号、メッセージ データ (シリアル ポートに書き込むバイト配列)、およびメッセージ タイプ (コマンドの説明) を含む DataSet にデータを挿入するヘルパー クラスも実装しました。また、DataGrid (フォーム上) にキュー コマンドを一覧表示します。おそらくその方法ではありませんが、要求しているクライアントとデータを保持し、視覚的にキューを表示する限り、それが私が考えることができる唯一のことです。

キューの処理はどこで行うのですか? DataGrid リストが変更された (アイテムが追加/削除された) 場合に、DataSet の最初の行のデータを取得してシリアル ポートに送信するカスタム イベントで処理することを考えました。

コメントや提案は大歓迎です。

ありがとう。

編集:現在実行されているコマンドをキューから削除するには、SerialPort からの応答も必要であることを追加するのを忘れていました。

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

google-app-engine - App Engine: タスクを非同期的にキューに入れることは可能ですか?

私のハンドラーの多くは、重要ではないバックグラウンド処理を行うために、タスクをタスク キューに追加します。この処理は重要ではないため、taskqueue.add() の呼び出しで例外がスローされた場合、私のコードはそれを無視します。

今夜、タスク キューは約 30 分間ダウンしているように見えました。私のハンドラーは失敗を正しく無視しましたが、taskqueue.add() 呼び出しがタイムアウトするまでに約 5 秒かかり、ページの残りの処理に進みました。したがって、これにより、サイトの実行が非常に遅くなりました。

では、タスクを非同期的にキューに入れることは可能ですか?つまり、追加が成功したかどうかを確認するのを待たずに、タスクを追加する方法を意味しますか?

あるいは、そのタイムアウトを 5 秒からたとえば 1 秒に短縮する方法はありますか?

ありがとう。

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

python - Google App Engine: task_retry_limit が機能しない?

Python GAE アプリがあります。

タスクの実行を停止するか、失敗した場合に 1 回だけ再試行します。今のところ、私の yaml ファイルが何を言っているかにかかわらず、それらは永久に実行されます!

queue.yaml エントリは次のとおりです。

globalPurchase タスクがエラー コード 500 で失敗した場合、ログに次のメッセージが記録されて成功するまで再試行されます。

「キュー "globalPurchase" の "task14" という名前のタスクがコード 500 で失敗しました。30 秒後に再試行します」

task_retry_limit が実際に使用されていないのはなぜですか?

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

python - appengine でタスク キューが空のときに関数を実行する

私は毎日、API を呼び出してデータを取得する cron ジョブを実行しています。データの行ごとに、タスク キューを開始してデータを処理します (さらに API を介してデータを検索する必要があります)。これがすべて完了すると、データは次の 24 時間は変更されないので、memcache します。

データをキャッシュできるように、キューに入れていたすべてのタスクがいつ終了したかを知る方法はありますか?

現在、次のように2つのcronジョブをスケジュールするだけで、非常に面倒な方法で実行しています。

次に、私の cron.yaml は次のようになります。

基本的に、すべてのタスクの実行に 5 分以上かかることはないと推測しているため、5 分後にキャッシュをフラッシュするだけで、データがキャッシュされたときに完全に完了することが保証されます。

これをコーディングするより良い方法はありますか?私の解決策は最善の解決策ではないように感じます....

ありがとうトム

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

google-app-engine - TaskQueues による処理能力のバースト?

データストアに対して 1000 の異なるクエリを作成し、個々のクエリの結果に対していくつかの計算を行い (1000 の個別の結果を取得する)、結果のリストを返したい状況があります。

クライアント側のパフォーマンスを向上させるために、計算を開始したのと同じ 30 秒のユーザー要求からの応答として結果のリストが返されるようにしたいと考えています。ハッ!

私には大胆な計画があります。

これらの各操作は、通常、1 秒以内に完了する問題はなく、他の操作と同じエンティティ グループに書き込む必要はなく、他のクエリからの情報を必要としません。1000 の独立したタスクを開始し、それぞれがこれらのクエリの 1 つを受け取り、計算を行い、結果をエンティティの一時的なコレクションのようなものに保存することは可能でしょうか? 元のリクエストは 10 秒待ってから、データストアからの結果に対して 1 つのクエリを実行できます (クエリできる一意の値がすべて設定されている可能性があります)。まだ入っていない結果はクライアント側で通知され、クライアントはさらに 10 秒後にそれらの値を再度要求することができます。

経験豊富なアプリ エンジニアに答えてもらいたい質問は次のとおりです。

  • これはばかげていますか?もしそうなら、それはいくつものタスクにとってばかげていますか? 一度に50個は合理的でしょうか?
  • 同じエンティティを 1 秒間に 20 回読み取っても、データストアの競合は発生しませんよね? その論争はすべて書くためのものですか?
  • タスクから応答を取得する簡単な方法はありますか?
0 投票する
1 に答える
574 参照

google-app-engine - Google App Engine 追加タスクが見つからない

タスクをタスク キューに追加すると、タスクが見つからないことがあります。エラーは発生しませんが、ログにタスクが見つかりません。n 個のタスクを追加するとします。これらの n 個のタスクが終了しないと、計算を進めることはできません。ただし、これらの n 個のタスクの 1 つ以上が追加された後に行方不明になり、アルゴリズム全体が途中で停止することがわかりました。何が原因でしょうか? タスクが追加された回数を確認する変数 w を保持します。いくつかのタスクが作成されていませんが、w = n を観察します。

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

objective-c - Web サーバーへの画像のアップロードを停止しますか?

Web サーバーにアップロードする画像のキューを持つ iPhone アプリがあります。問題は、アップロードを停止する IBAction を作成する方法です。これが私のコードのスニペットです:

ありがとう、コールトン!