問題タブ [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.
python - Python でマルチプロセス モジュールを使用して複数の Gearman プロセスを実行する
Python のマルチプロセッシング モジュールを使用して複数のギアマン ワーカー プロセスを実行したいのですが、プロセスがシーケンシャル モードで実行されているようです。複数の端末で個々の worker.py プログラムを実行すると、正常に動作します。しかし、非常に多くの端末で worker.py を手動で指定する負担を軽減したいと考えています。これに代わるものはありますか?
gearman - ギアマンの仕事を遅らせる/延期する方法は?
異なるサーバー上のデータを同期するためにギアマンを使用しています。1 つのメイン サーバーと、たとえば 10 のローカル サーバーがあります。考えられる状況の1つを説明しましょう。たとえば、ギアマンが作業を開始し、5 つのジョブが完了し、その 5 つのサーバーのデータが同期されたとします。たとえば、次のジョブの実行が開始されると、サーバーとの接続が失われ、現在使用できません。ギアマンのロジックで何度もリトライ。したがって、残りのジョブ (サーバー 7、8、9、10 用) は、6 番目が完了するまで実行されません。最善の解決策は、ジョブを延期してキューの最後に配置し、ジョブ 7 ~ 10 の作業を継続することです。
誰かがそれを行う方法を知っている場合は、方法を投稿してください。
PS: Python を使用しています。
instance - 複数の upstart インスタンスを自動的に起動する
PHP のギアマン ワーカーを使用して、さまざまなタスクを並行して実行します。すべてがうまく機能し、必要なときに起動するためのばかげた小さなシェル スクリプトがあります。プログラマーである (したがって怠け者である) ので、新興スクリプトを使用してこれらを起動できるかどうかを確認したかったのです。
インスタンススタンザの使い方がわかったので、インスタンス番号で開始できます。
そして、これはうまく機能し、次のように開始します。
これらのワーカーを使用したい方法は、いくつかのワーカー (コアごとに 1 つなど) を起動することであり、起動時にこれを実行したいと考えています。明確にするために、コアの数を検出するために upstart スクリプトは必要ありません。「8 つのインスタンスを実行する」とだけ言ってよろしいのですが、それが複数の実行が必要な理由です。これを自動的に行うために、upstart スクリプトで「start on」句を使用する方法はありますか?
たとえば、インスタンス 1、2、3、4 を開始しますか? 次に、シャットダウン時に適切に終了しますか?
これをinit.dスクリプトにフックできると思いますが、upstartがこのようなことを処理できるかどうか、または誰かがこの問題を理解しているかどうか疑問に思っていました.
乾杯!
gearman - ギアマンでのエラー状態と再試行?
例外がスローされたとき、またはエラーが発生したときにギアマンがどのように再試行するかについて、誰かが私を案内できますか?
Django アプリで Python ギアマン クライアントを使用しており、ワーカーは Django コマンドとして開始されます。このブログ投稿から、エラー状態からの再試行は単純ではなく、ワーカー側から sys.exit が必要であることを読みました。
おそらくsendFailまたはsendExceptionで再試行するように修正されましたか? また、gearman は指数関数アルゴリズムを使用した再試行をサポートしていますか? たとえば、SMTP エラーが発生した場合、2、4、8、16 秒後に再試行しますか?
python - Gearman Worker から失敗したジョブの出力を送信する最良の方法は何ですか?
私のコードでは、ユーザーが指定した再試行回数だけギアマン ジョブ (ファブリック コマンドを実行) を再試行しようとしています。試行ごとに、出力をキャプチャして追加しています。最後の再試行で、ジョブが失敗した場合、出力をクライアントに返したいと考えています。
何が起こっているかというと、job.send_fail() コマンドが単純に壊れて、失敗したコマンドの出力を返すために「出力を返す」コマンドにまったく移動しないということです。
ワーカーが死ぬことなく、ジョブを失敗させ、終了/失敗時にクライアントにデータを返すより良い方法はありますか?
php - PHP警告:GearmanClient :: doBackground():gearman_connection_flush:write:111
MacでVagrantを使用して本番セットアップを複製し、複数のGearmanサーバーを実行している問題を複製できるかどうかを確認しようとしています。
ただし、「Web」仮想マシンにジョブをGearmanキューに送信させることができず、代わりに件名に記載されているエラーが発生します。2つのVM間でpingを実行でき、一方のVMからもう一方のVMにSSHで接続できますが、ポート4730でTelnet接続を確立できないようです。
CLIから(-vvvを使用して)Gearmanサーバーを起動し、さらに多くのことが行われていることを確認しました。次のように、バックエンドが実際にWebVMからの接続を受け入れていることがわかります。
ただし、受信した接続では何もしていないようです。他の誰かがこの問題の経験を持っていますか、またはおそらくエラー111が何であるかを明らかにすることができますか?
ありがとう。
php - ジョブのバッチ処理をサポートするキューイングシステム(たとえば、1人のワーカーに対して一度に複数のジョブ)
次のシナリオをサポートできるキューイングシステムを探しています。
- クライアントがジョブを追加します-特定のURL(URL1)が持つFacebookの数を確認します。
- クライアントは別のジョブを追加します-URL2の同じ情報をチェックします。
[....]
ワーカーはキューから1から50のジョブ(URL)をピックアップし(たとえば、5つしかない場合は5をピックアップし、60がある場合は50をピックアップし、他のワーカーを別のワーカーに任せます)、Facebookに対してリクエストを発行します。 API(リクエストごとに複数のURLを許可します)。成功した場合、すべてのジョブがキューから削除され、失敗した場合、すべてのジョブが残ります。
私はPHPを使用していて、Gearman、Beanstalkdを調べましたが、同様の機能は見つかりませんでした。このような「バッチデキュー」をサポートする(無料の)キューイングシステムはありますか?
または、多分、誰かがそのような問題に対処する別の方法を提案することができますか?キューイングシステムの外部にある「チェックする」URLのリストを保持し、X期間ごとに実行されるcronジョブを使用して、それらを最大N個のアイテムのバンドルに追加することを検討しました。しかし、それはあなた自身のキューを構築するようなものであり、それは目的全体を打ち負かしますね?
php - Gearman ジョブが複数のワーカーに渡される (PHP)
PHP アプリケーションで、Gearman ジョブが複数のワーカーに渡されることがあるという問題があります。コードを縮小して 1 つのファイルに再現することができました。これが Gearman のバグなのか、pecl ライブラリのバグなのか、それとも私のコードのバグなのかはわかりません。
エラーを再現するコードは次のとおりです。
コマンドラインでこのコードを実行すると、出力されるはず"No job
has been passed to more than one worker."
ですが、複数のワーカーに渡されたいくつかのジョブのリストが常に出力されます。$sWorker = 'standard';
またはを設定すると、エラーは表示されません'exception-sleep'
。
コードを実行して、コードにバグがある場合のエラーを再現できるかどうかを教えていただければ、非常に助かります。
php - Webサーバーを介してPythonスクリプトを実行し、結果をjavascriptに返すにはどうすればよいですか?
domからajsonとしてajaxを介して送信されたWebページから結果を取得し、このデータをpythonスクリプトに送信して実行し、新しい結果をjsonとして返します。ギアマンを実行するphpスクリプトが良い賭けだと言われましたが、それがどのように機能するかはまだわかりません。
mamp - MAMPにギアマンエクステンションをインストールする方法
誰かがMAMPにgearmanextensionをインストールしようとして成功したことがありますか?MAC OSX10.6.8のMAMP2.xでそれを実行しようとしています