web-dev-qa-db-ja.com

Gearman永続キューがPostgresに保存されていません

Gearman 0.32(ppa:gearman-developers/ppa)に問題があります-キューの永続性のためにPostgresにキューを保存しません。

  • Gearmanが実行されているので、ジョブを追加できます(読みやすくするために、PastebinでDEBUGの冗長性を使用した例: http://Pastebin.com/3uRds4yi
  • Postgres接続文字列はOKです-同じホストからの同じデータを使用してデータベースにログイン/アクセスすることができました
  • GearmanはPostgresに接続します-キューテーブルがDBに存在しない場合は、それを作成します。

そして、それにもかかわらず、DBには何も追加されません。 0人のワーカーが登録されており、キューに新しいジョブを追加すると、キューに入れられますが、永続ストレージに保存されることはありません。

1
c2h5oh

問題が見つかりました:

Pecl Gearmanを使用する場合、GearmanClient::addTaskを使用して追加された拡張タスク(および関数の高/低優先度バリアント)はGearmanジョブキューに追加されますが、PHP = GearmanClient::runTasksが結果を返す前にスクリプトがタイムアウトします。

代わりにGearmanClient::addTaskBackgroundを使用してください。

1
c2h5oh