【发布时间】:2012-07-01 13:47:25
【问题描述】:
运行 Fedora、PHP/Gearman/MySQL/Drizzle。
从源代码构建 Gearman/Drizzle,并让进程在 linux/fedora 机器上运行。我创建了 mysql 测试表,可以看到 Gearman Daemon 实例可以访问/与 mysql 服务交互。我使用 TCP 在同一个机器上运行 Gearman 和 mysql 进程。
当 Gearman 启动并指向 MySQL 帐户时,我可以在 Gearman 进程运行时显示的 DEBUG 信息中看到初始选择语句。
但是,我不确定我需要做什么才能实际测试来自客户端的作业是否存储在 mysql 表中。
我创建了一个测试客户端,它复制了 Gearman 客户端/工作人员“审查”测试,如果工作人员正在运行,它通常可以工作,并且在没有工作人员的情况下运行客户端。我在 DEBUG 进程中看到客户端与 Gearman 守护程序连接,但是当我检查 mysql 表时,表中没有任何内容。
所以我的问题真的归结为确定我需要做什么才能真正看到/确保作业/数据真正写入实际的 mysql 表。
是否有一个给定的标志,调用某处的方法来确定数据是否存储在 mysql 表中(如果工作人员不处理)?不应该将作业存储在表中,然后在处理后将其删除吗?还是我在流程中遗漏了什么?
【问题讨论】:
-
我不确定流程是如何工作的,但我建议提交一份工作(没有工作人员),然后通过 gearmand 管理协议检查工作队列。如果它在队列中,它也应该在表中。