我对 Gearman 0.32 (ppa:gearman-developers/ppa) 有一个问题 - 它没有在 Postgres 中保存队列以实现队列持久性。
- Gearman 正在运行,我可以添加作业(例如,在 pastebin 上使用 DEBUG 详细程度以提高可读性):http://pastebin.com/3uRds4yi)
- Postgres 连接字符串正常 - 我设法使用来自同一主机的相同数据登录/访问数据库
- Gearman 连接到 Postgres - 如果队列表在 DB 中不存在,它就会创建它。
尽管如此,数据库中仍未添加任何内容。我有 0 个注册的工作人员,当我将新作业添加到队列时,它们会排队,但从未保存在持久存储中。
答案1
发现问题:
当使用Pecl Gearman
添加的扩展任务GearmanClient::addTask
(以及函数的高/低优先级变体)时,将被添加到 Gearman 作业队列,但如果 PHP 脚本在GearmanClient::runTasks
返回结果之前超时,则不会保存到数据库。
改用GearmanClient::addTaskBackground
。