Ubuntu
Gearman 持久隊列未保存在 Postgres 中
我對 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
。