我有许多齿轮工客户正在发送作业,例如job1。

$client = new GearmanClient();
$client->addServer();
$client->doBackground('job1', 'workload');

处理该作业大约需要10秒钟。
我想跟踪有多少个“job1”工作正在等待 worker 在任何给定时间进行工作。我怎样才能做到这一点?

最佳答案

为了快速检查,我使用了这种bash一线式:

(echo status ; sleep 0.1) | netcat 127.0.0.1 4730

这将打开与在localhost上运行的gearman实例的连接,并发送状态查询。其中包含该实例上的作业的名称和数量。然后可以使用grep/awk/wc等对信息进行处理,以进行报告和警报。

我也对显示所有已连接工作人员的工作人员查询进行了同样的操作。
(echo workers ; sleep 0.1) | netcat 127.0.0.1 4730

sleep 是为了使连接保持打开足够长的时间以进行回复。

管理命令的完整列表以及输出的含义在http://gearman.org/protocol/上。只需搜索“管理协议(protocol)”。

关于php - 如何获得Gearman中特定类型的排队作业的数量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3378760/

10-12 13:31