問題タブ [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.

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

python - スレッド化された画像処理と非同期の画像処理?

アクセスすると画像を生成するPython関数があります。HTTPリクエストで直接呼び出すか、Gearmanを使用して非同期で呼び出すことができます。たくさんのご要望があります。

どちらが良いですか:

  • インライン-画像をインラインで作成します。一度に多くの画像が生成されます
  • 非同期-(Gearmanを使用して)ジョブをキューに入れ、ワーカーで画像を生成します

どちらのオプションが良いですか?

この場合、「より良い」とは、最高の速度/負荷の組み合わせを意味します。画像生成の例は、データベース接続などにも適用できるため、象徴的です。

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

python - Gearman + SQLAlchemy - MySQL スレッドを失い続ける

複数のギアマン ワーカーを設定する Python スクリプトがあります。それらは、Pylons アプリでも使用されている、私が持っている SQLAlchemy モデルのいくつかのメソッドを呼び出します。

1 ~ 2 時間はすべて正常に動作しますが、その後 MySQL スレッドが失われ、すべてのクエリが失敗します。pool_recycle にこのような低い値を定義しているときに、スレッドが失われる理由がわかりません (3 つの異なるサーバーで同じ結果が得られます)。また、新しい接続が作成されないのはなぜですか?

調査するアイデアはありますか?

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

php - sqlite同時実行一括挿入

私はsqlLiteが挿入よりもSELECTに、特にデータベースファイル全体をロックするので同時実行挿入に適していると読みましたが、最後のポイントを知りたいです:)。

だから私はそのようなことで自分自身をトラブルに巻き込むかどうか疑問に思っています:

コードはギアマンワーカー内にあるので、複数のインスタンスがあります。

前もって感謝します。

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

php - ギアマンのチュートリアルはありますか?

総合的な Gearman チュートリアル (できれば PHP API を使用) を探しています。プロセスの流れを理解しようとしています。デーモンを実行するように設定し、クライアントとワーカーを作成しましたが、Gearman でそれらをどのように処理しますか (ワーカーの追加/削除など)?

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

php - Gearman と PHP: ワーカーが失敗を返す適切な方法

PHP ドキュメントはこれについて少し曖昧なので、ここで質問しています。このワーカー コードが与えられた場合:

発生したエラーをクライアントに通知する適切な方法は何ですか? false を返しますか? GearmanJob::sendFail() を使用しますか? 後者の場合、sendFail() を呼び出した後、doSomethingFunc() から戻る必要がありますか? 戻り値は sendFail() が返すものであるべきですか?

クライアントは GearmanClient::returnCode() を使用してエラーをチェックしています。さらに、「return $value」を使用するだけでも機能するようですが、代わりに GearmanJob::sendData() または GearmanJob::sendComplete() を使用する必要がありますか?

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

python - ジョブ処理中にpython-gearmanワーカータスクを変更する

作業サイクル中にpython-gearmanワーカーで使用可能なタスクを変更しようとしています。これを行う理由は、ワーカープロセスを少し制御し、データベースからリロードできるようにするためです。すべてのワーカーを定期的にリロードする必要がありますが、単にプロセスを強制終了したくはありません。また、サービスを常に利用できるようにしたいので、バッチでリロードする必要があります。したがって、4人のワーカーをリロードし、別の4人のワーカーを処理できるようにしてから、次の4人のワーカーをリロードします。

プロセス:

  1. リロードプロセスを4回開始します。
    1. reloadプロセスの登録を解除します
    2. データセットをリロードする
    3. finishReloadタスクを登録する
    4. 戻る
  2. reloadタスクが登録されているワーカーがなくなるまで、手順1を繰り返します。
  3. finishReload使用可能なタスクを持つワーカーがなくなるまで、(1)タスクを開始しfinishReloadます。

(1)finishReloadタスクは、タスクの登録を解除し、finishReloadタスクを登録してreloadから戻ります。

今、私が遭遇している問題は、ワーカープロセスで使用可能なタスクを変更するとジョブが失敗することです。エラーメッセージや例外はなく、ギアマンドログの「エラー」だけです。これが問題を再現する簡単なプログラムです。

ワーカー

クライアント

私が解明できることがあれば教えてください。

編集:誰かが私が言及したログを見るように頼むことを私は知っています。この質問をGoogleのギアマングループにも投稿しました。ログはそこで利用できます

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

php - 常に稼働しているギアマンワーカー

Gearman Clientをいつでも起動して、バックグラウンドで実行できるようにしたいプロセスがあります。

サーバーへのSSH接続を2つ開き、1つはワーカーを起動し、もう1つはクライアントを実行することで成功しました。これにより、目的の出力が生成されます。

問題は、ワーカーを常にバックグラウンドで実行して、プロセスを実行する必要があるときにいつでもクライアントを呼び出すことができるようにしたいということです。しかし、ワーカーPHPファイルが実行されているターミナルを閉じるとすぐに、クライアントへの呼び出しは機能しません。ワーカーは死んでいるようです。

ワーカーを常にバックグラウンドで実行する方法はありますか?新しいクライアントを呼び出すと、新しいワーカーを起動しなくても機能しますか?

ありがとう!

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

boost - Yumのバージョンが古い場合にBoostを更新する方法

Gearmanの最新バージョンをインストールしようとしています。しかし、それは私にエラーを与え続けます:

ブーストヘッダーのバージョンを確認しています>=1.37...いいえ

Boostのバージョン(インストールされているyumリスト| grep boost)を確認すると、すべてのバージョンが1.33です。最新のBoostバージョンは1.46ですが、CentOSのリポジトリにはこのバージョンがないようです。

Boostを最新バージョンに更新するためにyumを回避する方法はありますか?

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

php - ギアマンvsZeroMQ

これらのエンジンを使用した分散アーキテクチャに関するフィードバックはありますか?どちらが最高ですか、それともどの場合が最高の選挙ですか?

よろしく!