問題タブ [worker]
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.
ruby - Heroku ワーカー dyno 上のプロセス間の TCP ソケット通信
Heroku ワーカー dyno でプロセス間で通信する方法を知りたいです。
Resque ワーカーがキューから読み取り、同じ dyno で実行されている別のプロセスにデータを送信するようにします。「他のプロセス」は、通常は TCP ソケット (ポート xyz) を使用してコマンドをリッスンする市販のソフトウェアです。Resque ワーカーが開始する前に、バックグラウンド プロセスとして実行するように設定されています。
ただし、その TCP ソケットにローカルで接続しようとすると、どこにも行きません。
キューを設定するための Rake タスクは次のことを行います。
リスナー プロセスが実行され、Resque がキューに入れられたタスクを処理しようとします。localhost:12345
ただし、 (具体的には)に接続できないため、Resque ジョブは失敗しErrno::ECONNREFUSED
ます。
おそらく、Heroku は同じ dyno で TCP ソケット通信をブロックしています。これを回避する方法はありますか?
私は状況から「コード」を取り出そうとし、コマンドラインで実行しました(サーバープロセスが12345に適切にバインドされていると主張した後):
しかし、これもつながりません。
現在、クライアント/サーバー コードを変更しUNIXSocket
てTCPSocket
.
grails - Grails の非時間ベースのキューイング
アップロードされるファイルを処理する必要があり、1 秒から 10 分ほどかかる場合があります。現在、私の解決策は、30秒のタイマーでクォーツジョブを作成し、ヒットするたびに任意のジョブを処理することです。これにはいくつかの問題があります。
1: ジョブが数秒もかからない場合、ジョブ キューを 30 秒待たせるのは無駄です。
2: キューに長いジョブが 1 つしかない場合、それを 2 回実行しようとする可能性があります。
私が欲しいのは、時代を超越したキューです。物が追加されると、空いているワーカーがあればすぐに開始されます。これに対する解決策はありますか?私はjesqueを見ていましたが、これができるかどうかわかりませんでした。
clojure - Clojure Heroku ワーカー Dyno キュー
Heroku で Clojure Web アプリケーションのジョブ キューを作成することは可能ですか? Rails と Django で遅延ジョブを実行し、セロリを使用できるようですが、Clojure で同様のものはありますか?
ruby-on-rails - Railsワーカーの最適化
バックグラウンドジョブを実行しているワーカーがいくつかあります。このワーカーのメソッドは約 100 行です。Rails for Workers でコードを最適化して別のファイルに移動する際の一般的な方法は何ですか。
ruby-on-rails-3 - Heroku dyno/worker が起動時にクラッシュする
Rails で記述され、Heroku にデプロイされたアプリケーションがあります。以前は 1 つの Web dyno で作業していましたが、今日アプリを公開しました。トラフィックが非常に大きいため、4 つの Web dyno と 1 つの worker dyno に増やすことにしました。私がそれを行うと、なぜいつもheroku ps
それが表示されるのかわかりません:
の直後にワーカー dyno がクラッシュしheroku scale worker=1
ます。ログは次のようになります。
それでおしまい。理由はわかりますか?Web dyno は正常に動作しています。ワーカー dyno を使用するには、アプリで何かを構成する必要がありますか?
また、heroku プラットフォームを Web ダイノとワーカー dyno に分割する背後にあるロジックは何ですか? 私はドキュメントを何度も読みましたが、ストレージ制限などがある世界で育ったので、それを理解するポイントをまだ逃していると思います.
c# - マルチコア サーバー上のワーカー プロセスの CPU 使用率
セットアップ
個別のワーカー プロセスを起動してさまざまな CPU 集中型タスクを実行する Windows サービスを作成しました。サーバーとワーカーは、IPC 名前付きパイプを介して通信します。
Process.Start()
現在、単純な呼び出しでワーカーを作成しています。
かなり低スペックのデュアル コアサーバー VM で多数のワーカーを実行すると、タスク マネージャーは、各ワーカーが約 2 ~ 3% の CPU を使用していることを示します。
ただし (これは私たちを混乱させるものです)、非常に強力な8 コアサーバーで同じテストを実行すると、各ワーカー プロセスが 2 ~ 3% の CPU を使用していることがわかります。これで、より多くの CPU 'パワー' が利用できるようになったので、各ワーカーが使用する CPU の割合がはるかに少なくなると予想されます。
これはまた、低電力のサーバーでは、30 程度のワーカー プロセスが作成された後、CPU 使用率が 100% に達することを意味します。しかし、強力な CPU では、同じ数のワーカーの後で同じ制限に達します。はるかに多くのワーカーを実行できると予想されます。
問題
それで、私はいくつかの質問があります:
タスク マネージャーが教えてくれる値を誤解していませんか? CPU % 値は、すべてのコアで消費された CPU 時間ですか? もしそうなら、なぜ非常に異なるハードウェアで同じなのですか?
ワーカー プロセスを複数のコアに適切に分散させるために、何か特別な/異なることを行う必要がありますか? 現時点では、プロセスにはデフォルトのプロセッサ アフィニティがあります (したがって、どのコアでも実行できます)。
ヘルプ、アドバイス、リンクは大歓迎です。
コメントを残した人への追加情報:
質問に複雑さを加える必要はなかったので、最初は言及しませんでしたが、ワーカー プロセスはライブ ビデオ ストリームのビデオ トランスコーディングを行っています。そのため、ワーカーがそのタスクを「完了する」ことはありません。クライアントが接続されている限り、ワーカーは単に機能します。
基本的に:
- クライアントがサーバーに接続します
- サーバーは、リモート ビデオ ストリームに接続するワーカー プロセスを開始します。
- ビデオがビデオ ストリームから受信されると、ワーカーはそれをトランスコードし、トランスコードされたビデオをクライアントに送り返します。
これが他の提案に役立つかどうかわかりませんか? これまでのすべてのコメントに感謝します。
background - バックグラウンド ワーカーを停止できません
別のトレッド/バックグラウンド ワーカー上にあるボットをコーディングしていて、それを停止しようとしていますが、キャンセルを押した後、ボットはまだ動作しています oO
コードはこちら: //Stop my bot
//ボットを開始
編集し、コメンターのリンクをたどり、このコードを下に取得しましたが、まったく何もしませんが、引き続き実行されます
c# - ワーカースレッドを一時的に停止するための適切なアプローチ
短時間のバーストでアクティブになり、残りの時間はアイドル状態になる可能性のあるワーカースレッドがあります。スレッドをスリープ状態にして、必要に応じてスリープ解除することを考えています。
これに関する追加の推奨事項について知っておく必要がありますか?
ありがとう!
- これはC#/。NET4にあります
python - マスタースクリプトからPythonワーカースクリプトを複数のインスタンスとして呼び出す
Webサービスリクエストワークスペースを監視しているPythonスクリプトがあります。クライアントが私のWebサービスにジョブを送信するたびに、よく知られた場所に一意のジョブフォルダーが作成されます。「フラグ」(このジョブの処理が完了したことを示す特定の名前の空白のテキストファイル)のないフォルダーのこのよく知られた場所をポーリングするスクリプトがあります。
現在、私のスクリプトはワーカースクリプトを呼び出して新しいフォルダーの内容を処理できますが、ワーカースクリプトが終了するまで待ってから、フォルダーの配布を続行する必要があります。
私の質問は、ワーカースクリプトの新しいインスタンスをインスタンス化して、制御をマネージャーに戻すためのオプションは何ですか。ワーカースクリプトのパラメーターを受け取り、マネージャースクリプトでコマンドラインから呼び出すPython実行可能ファイルを作成しますか?または、多数のインステーション処理作業を行うことができるクラスにワーカースクリプトを作成しますか?
ワーカースクリプトが完了すると、マネージャースクリプトジョブの完了にメッセージを返す必要はありません。これは、テキストファイルをディレクトリにドロップすることで実行されます。今考えてみると、ワーカースクリプトの処理に1.5分かかるため、各ジョブディレクトリが配布されていることをどこかで保持する必要があります。
アドバイス/リンクをいただければ幸いです。
azure - Worker ロールの ServicePointManager.DefaultConnectionLimit
現在、Windows Azure について学んでいます。
私はいくつかのサンプルを見ていて、私が見るワーカーロールの OnStart イベントで
ServicePointManager.DefaultConnectionLimit = 5;
これの関連性がわかりません。
worker ロールでは、インスタンスの数を設定できるので、これによりエントリの数が制限されますか?
混乱してすみません。