Ubuntu

Gearman 持久隊列未保存在 Postgres 中

  • June 28, 2012

我對 Gearman 0.32 (ppa:gearman-developers/ppa) 有疑問 - 它不會在 Postgres 中保存隊列以實現隊列持久性。

  • Gearman 正在執行,我可以添加作業(在 pastebin 上使用 DEBUG 詳細程度的範例以獲得更好的可讀性: http: //pastebin.com/3uRds4yi
  • Postgres 連接字元串沒問題 - 我設法使用來自同一主機的相同數據登錄/訪問數據庫
  • Gearman 連接到 Postgres - 如果隊列表在 DB 中不存在,它會創建它。

儘管所有這些都沒有添加到數據庫中。我註冊了 0 個工作人員,當我將新作業添加到隊列中時,它們會排隊,但從未保存在持久儲存中。

發現問題:

當使用Pecl Gearman添加的擴展任務時GearmanClient::addTask(以及函式的高/低優先級變體)將被添加到 Gearman 作業隊列中,但如果 PHP 腳本在GearmanClient::runTasks返回結果之前超時,則不會保存到數據庫中。

改為使用GearmanClient::addTaskBackground

引用自:https://serverfault.com/questions/403167