問題タブ [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.
c# - System.Timers.Timer が Azure Worker ロールでさまよう
n 個 (現在は n = 2) のインスタンスを持つ Azure Worker ロールがあります。これらの各インスタンスには、メイン スレッドに System.Timers.Timer があり、20 秒ごとに実行され、いくつかの作業プロセスが生成されます。ロール インスタンスが最初に起動すると、タイマーが同時に開始されるように、内部エンドポイントを介して同期されます (これは機能します)。
1 日のうちでも、これら 2 つのタイマーは同じ間隔で動き回る傾向があります。一方は以前よりも数秒早く開始し、もう一方は同じ方向に進むか、最悪の場合は他方に進む可能性があります。
私の実行方法は基本的に次のとおりです。
質問:
- 何が原因でしょうか?
- while(true){} ループに Thread.Sleep(sleeptimeinMS) 呼び出しを追加すると、メイン スレッドが常にビジー状態になるのを防ぐことでこれが改善されますか (タイマー スレッドが何らかの形でより自由にその義務を果たせるようにするためですか?)。
- 役割を定期的に外部クロックに再同期する必要があるというのは正しい答えですか?
- これを実装するための根本的に異なる方法はありますか?
お時間をいただきありがとうございます。
アレックス
high-availability - HA ギアマン ジョブ サーバーのベスト プラクティスとは
Gearman のメイン ページでは、ジョブ サーバーが停止した場合にクライアントが新しいジョブ サーバーを取得できるように、複数のジョブ サーバーで実行することについて言及しています。以下のステートメントと図を考えると、ジョブ サーバーが相互に通信していないように見えます。
私たちの質問は、停止したジョブ サーバーでキューに入れられたジョブはどうなるかということです。これらのサーバーの高可用性を確保して、ジョブが障害によって中断されないようにするためのベスト プラクティスは何ですか?
複数のジョブ サーバーを実行し、クライアントとワーカーを、構成されている最初に使用可能なジョブ サーバーに接続させることができます。このようにして、1 つのジョブ サーバーが停止した場合、クライアントとワーカーは自動的に別のジョブ サーバーにフェールオーバーします。あまり多くのジョブ サーバーを実行することは望ましくありませんが、冗長性を確保するために 2 つまたは 3 つのジョブ サーバーを用意することをお勧めします。
asp.net - Visual Studio で IIS の複数のワーカー プロセスをレプリケートする
IIS の複数のワーカー プロセスで動作するように設定された Web サイトがあります。特定のページをロードすると、古典的な「オブジェクトがオブジェクトのインスタンスに設定されていません」というエラーが発生します。これを Visual Studio で再現したいのですが、IIS のように複数のワーカー プロセスで効果的に実行されるように Visual Studio を設定する方法はありますか?
c# - UI が設定されている間、しばらくお待ちくださいアニメーションを表示する
私は C# で WinForms ウィンドウを作成しています。このウィンドウには、それぞれ数百から数千の項目を持つ約 12 個ListBox
と 6 個のコントロールが表示されます。ComboBox
これらを設定するには少し時間がかかります。長い時間ではありません - ほんの数秒ですが、プログラムがバックグラウンドで動作していることを待っている間、ユーザーが何かを見ることができると便利です。
これが発生している間、一般的な「お待ちください」アニメーションの境界線のない一番上のウィンドウが表示されますが、アニメーションに問題があります。
少し時間がかかるほとんどのタスクでは、次の方法でこれを解決します。
そしてそれは非常にうまく機能します。ときどき、スレッド内のもので何かを呼び出す必要があり、アニメーションに小さな問題が発生することがありますが、通常は大した問題ではありません。
ただし、このフォームでは、スレッド内のコード全体が UI コードであり、ListBox と ComboBox を設定します。つまり、すべてを Invoke ブロックで囲む必要がありますが、そもそも別のスレッドで実行する意味がないため、意味がありません。
この特定のケースのワーカー スレッド全体を廃棄し、Application.DoEvents()
各ループに 100 ごとに挿入する以外に、コントロールが設定されている間、動作中のアニメーションを続行できるようにするためにできることはありますか?
c - 単純な MPI 送受信プログラムの動作が不明確
しばらくの間、コードにバグがあり、それを解決する方法がまだわかりませんでした。
私が達成しようとしていることは簡単です: すべてのワーカーノード (つまり、ランク!=0 のノード) は、計算を伴う正方形構造で行 (1 次元の arry で表される) を取得します。計算が完了すると、この行がマスターに送り返されます。
テスト目的のため、計算は含まれていません。起こっていることはすべて次のとおりです。
- マスターはワーカーに行番号を送信し、ワーカーは行番号を使用してそれに応じた値を計算します
- ワーカーは結果値を含む配列を送り返します
今、私の問題はこれです:
- all は、行内の要素数 (サイズ = 1006) およびワーカー数 > 1 の特定のサイズまで期待どおりに機能します。
- 行の要素が 1006 を超えると、ワーカーはシャットダウンに失敗し、プログラムは終了しません。
- これは、配列をマスターに送り返そうとした場合にのみ発生します。単純に INT を送り返すだけで問題ありません (doMasterTasks() と doWorkerTasks() のコメントアウト行を参照)。
最後の箇条書きに基づいて、マスターに送り返される配列が特定のサイズに達した場合にのみ表面化する何らかの競合状態が存在するに違いないと思います。
問題が何であるか考えていますか?
次のコードをコンパイルします: mpicc -O2 -std=c99 -o simple
次のように実行可能ファイルを実行します: mpirun -np 3 simple <size> (例: 1006 または 1007)
コードは次のとおりです。
どんな助けでも大歓迎です!
ベスト、クリス
php - PHP 拡張機能をインストールせずに PHP アプリケーションから Gearman を使用する
PHP アプリケーションで実行時間の長いジョブを配布するために Gearman サーバーを使用することに興味があります。残念ながら、アプリケーション サーバーに直接アクセスできず、PECL 拡張機能をインストールできません。
使用できる純粋な PHP クライアント ライブラリはありますか?
php - codeigniter プロジェクトで Net_Gearman を使用する
Codeigniter を使用してアプリケーションを構築しましたが、Gearman ジョブ キュー サーバーを使用して、長時間実行されるタスクをバックグラウンドで実行したいと考えています。私は Net_Gearman PEAR ライブラリを使用しています (モジュールをインストールするのはあまり望ましくありませんが、残念ながら、サーバーのセットアップに追加のモジュールをインストールすることはできません)。このライブラリと codeigniter の統合を達成するためのベストプラクティスの方法について、優れたチュートリアルやガイドはありますか? たぶん、codeigniter 用のカスタム ビルド ライブラリでさえありますか? ありがとう!
php - CLI経由でCodeIgniterスクリプトを実行する-CIスーパーオブジェクトメソッドがありません
CodeIgniterプロジェクトがあり、CLIを介してコントローラーメソッドの1つを呼び出したいのですが、CIスーパーオブジェクトにアタッチされている通常のプロパティとメソッドが欠落しているようです。
たとえば、通常のhttpリクエスト中に完全に正常に実行される次のスクリプトを実行すると、エラーが発生します。
これは、CLIを介して返されるエラーです
私はスクリプトをそのように呼んでいます:$ php index.php worker test
編集
さらに、このスクリプト:
戻り値:NULL
php - Net_Gearmanはワーカー関数内からjob_idにアクセスしますか?
現在のワーカー関数内から現在のジョブのjob_idにアクセスしようとしているので、現在のワーカー関数と同じキーで結果をmemcachedに保存できます。これを達成する方法はありますか?