問題タブ [gearman]
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.
php - バックグラウンドでギアマンワーカーを実行する
PHP5.3.8でUbuntuNattyを使用しています。Gearmanをサーバーで動作させました。
PHPマニュアルから取得したいくつかのスクリプトを使用していくつかのテストを行いましたが、すべて問題なく動作します。
ただし、ワーカーをバックグラウンドで実行する方法があるかどうかを知りたいのですが、それを監視して、複数のワーカーの状況に移行したときに、自分が何人のワーカーを持っているかを追跡できるようにします。働く。
通常、私は2つのターミナルを開く必要があります。1つはワーカー用、もう1つはクライアント用です。phpスクリプトが実行された後、ワーカー用のものは有効に「スタック」します。
前もって感謝します。
gearman - Monit で Gearmand デーモンを監視するには?
したがって、gearman サーバーを監視するための構成ファイルは次のとおりです。
monit.log から
しかし、Monit はプロセスの開始に失敗したと言っています。誰かがそれを機能させる方法を知っていますか? 前もって感謝します。
php - PHPとGearmanの複数のプロセスの追加を監視
最近、PHP5-FPM、Gearman、Supervisorを使用してUbuntuNattyをセットアップしました。Gearmanワーカーを実行するようにSupervisord構成を編集しました。
lsof -i -P
スーパーバイザーを実行する前の関連情報(gearmandプロセスとphpプロセスのみを表示)は次のとおりです。
そして、これが私が私を追いかけたときに私が得るものlsof -i -P
です/etc/init.d/supervisor stop && /etc/init.d/supervisor start
。
監視対象自体のリストが表示されません。監視対象をコマンドの1つとして表示する必要がありますか?!
とにかく、私が停止して再開(または再起動)すると、監視対象は次のようになります。
監視を停止して開始するたびに、別のphpプロセスが作成され、次に別のプロセスが作成されるようです。ギアマンドを再起動したときだけ、通常の状態に戻り/etc/init.d/gearman-job-server stop && /etc/init.d/gearman-job-server start
ます。
これは私には異常に思えます。私が監督をやめると、それはやめることになっているということです。
これは監視対象の動作方法ですか?!これを防ぐ方法はありますか?!
前もって感謝します。
編集
問題の原因を突き止めました。これは、supervisord.confおよび私のinitスクリプトとの小さな競合でした。
私のsupervisord.confファイルには次の設定がありました。
しかし、私のinitスクリプトに/etc/init.d/supervisord
は次の設定がありました。
そのため、supervisord.confの設定を、initスクリプトの設定と一致するように変更しました。
stopsignal=KILL
また、 supervisord構成ファイル(supervisord.conf)のプログラム構成に追加しました。
指示してくれたミナズに感謝します。
php - コマンド ラインから Gearman PHP を実行しているセグメンテーション エラー
PHP 5.3.5 およびPECL Gearman 0.8.0で Ubuntu Natty を使用しています。バージョン情報は次のとおりです。
コマンド ラインから Gearman クライアントを実行しようとすると、セグメンテーション エラーが発生します (すでにワーカーを実行しています)。
コマンドラインで得られるものは次のとおりです。
これが私のワーカーコードです:
そして、ここに私のクライアントコードがあります:
編集
セグメンテーション違反は Imagick によって引き起こされたようです。そこで、この問題に対処するために次のことを行いました。
- imagick を削除します
dpkg --purge --force-all php5-imagick
。PHPをセットアップするときにこれをインストールしました - PHP を再起動します (これは、php のインストール方法によって異なる場合があります)。
- Gearman Job Server を再起動する
/etc/init.d/gearman-job-server stop && /etc/init.d/gearman-job-server
現在、すべてが正常に機能しているようです。
php - Gearman サーバーに接続できません
Gearman でこの問題を引き起こしている原因を知っている人はいますか?
PHP 警告: GearmanClient::doBackground(): gearman_connection_flush: 接続できませんでした
Gearman タスクを実行するために別のサーバーに接続しようとしていますが、PECL PHP Gearman パッケージを使用しています。
python - Python Gearman はバックグラウンド タスクからデータを取得します
バックグラウンドタスクでギアマンを使用して、ワーカーからデータの進行状況を取得しようとしています。ドキュメントでは、send_job_data と send_job_status というメソッドが表示されていますが、バックグラウンドで最初のメソッドが機能しません (job.data_updates にデータが表示されません) が、job.status でステータスが変更されます。
私はテスト ワーカーにこのコードを使用しています: from gearman import GearmanWorker import time
クライアントからのこのコード: from gearman import GearmanClient client = GearmanClient(['192.168.1.79:4730'])
このコード (ブロッキング) は正常に動作します。
そして、このクライアントは正常に動作しません(タスクのステータスを更新せず、データ/結果を取得しません):(
どうすればこのデータを正常に取得できますか? 私のバックグラウンド タスクは数時間動作し、メッセージでステータスに関する情報を送信するためです。
python - fabfile を使用しないファブリックでのリモート ssh
fabric と gearman を使用して一連のコマンドをリモートで実行するプログラムを作成しています。
以下は、Gearman のクライアント コードです。
以下は私のワーカーコードです
問題は、ワーカーとクライアント コードを実行しているときに、ホスト名を提供したにもかかわらず、ワーカーが引き続きホスト名を要求することです。Fabric でホスト名を設定する他の方法はありますか? サブプロセスを生成してファブリック コマンドを実行するつもりはありません。
php - 複数の変数を Gearman ワーカー関数に渡す
2 つの変数を同じワーカー関数に渡すにはどうすればよいですか? たとえば、クライアントから渡す 2 つの文字列を連結したいとします。いくつかのサンプル コードで配列が使用されているのを見ましたが、それを機能させることができません。
ただし、これは無効なワークロードであることを示しています(配列が渡されていることが原因だと思います)。それらをどのように渡す必要がありますか-それぞれにタスクを作成する必要がありますか?
次に、配列を送信できない場合、ワーカー関数で複数の変数を使用するにはどうすればよいですか。関数 String_Concat($job, $job2) のように試しましたが、それらをworkload()に追加する方法がわかりません
配列を渡すことができた場合のコード例を次に示します。
これを行う最善の方法は何ですか?どうもありがとう!
php - コンパイルされた PHP 拡張機能が無効です
PHP を 5.2 に固定して Ubuntu 10.04 に Gearman PHP 拡張機能をインストールしようとしていますが、PHP は有効な Zend 拡張機能ではないと言っています。
ソースからコンパイルする (または pecl 経由でインストールする) 場合はエラーはありませんが、インストール後、PHP は次のように表示します。
モジュールのアーキテクチャは、PHP のアーキテクチャと一致します (32 ビット システムと 64 ビット システムの両方で試しました)。知っている限り、すべての依存関係をインストールしました(見逃した場合はエラーが発生すると思います-最初はそうしました)。
PHP 5.2 で動作する最高のバージョンであるため、gearman 0.8.0 を使用しています。最後に確認したとき、私たちの drupal 6 は 5.3 でうまく動作しなかったため、私は PHP 5.2 を使用しています (おそらくこれはコアで修正されていますが、必ずしもモジュールでは修正されていません)。
この動作に関するドキュメントが見つからないため、これは PHP が固定されていることと関係があると思われます。
php - PHPスクリプトをバックグラウンドで実行するための最良の解決策は何ですか:Gearmanまたはシェルを介して?
PHPスクリプトをバックグラウンドで動作させたいです。そこで私はいくつかの調査を行い、2つの解決策を見つけました。
- シェル経由。
- http://gearman.org/
どの解決策が最適か疑問に思います。
また、PHP.iniにはメモリ制限があることもわかりました。この制限が私の「バックグラウンド」PHPスクリプトにどのように影響するのか、そしてより多くのメモリが必要な場合はどのソリューションが最適か疑問に思っています。
詳細:
バックグラウンドで動作するスクリプトは、PHPとKohanaフレームワークを使用してファイルを暗号化します。
私はUbuntu11を使用しています。