我有一些齿轮工作的客户发送工作,比如job1.
$client = new GearmanClient();
$client->addServer();
$client->doBackground('job1', 'workload');
Run Code Online (Sandbox Code Playgroud)
处理这项工作需要10秒钟.我想跟踪有多少'job1'工作等待工人在任何给定时间工作.我怎样才能做到这一点?
d5v*_*5ve 31
为了快速检查,我使用这个bash one-liner:
(echo status ; sleep 0.1) | netcat 127.0.0.1 4730
Run Code Online (Sandbox Code Playgroud)
这将打开与localhost上运行的gearman实例的连接,并发送状态查询.它包含该实例上的作业的名称和数量.该信息然后可以与处理grep/ awk/ wc用于报告和警报等.
我也对显示所有连接工作者的工作人员查询执行相同的操作.
(echo workers ; sleep 0.1) | netcat 127.0.0.1 4730
Run Code Online (Sandbox Code Playgroud)
睡眠是为了保持连接打开足够长的时间以便回复.
管理命令的完整列表以及输出在http://gearman.org/protocol/上的含义.只需搜索"管理协议".
ian*_*las 12
要扩展d5ve的答案,添加一个-w参数来"超时"你的netcat连接,否则你永远不会回到命令提示符.
$ (echo status ; sleep 0.1) | sudo netcat 127.0.0.1 4730 -w 1
Run Code Online (Sandbox Code Playgroud)
小智 6
telnet localhost 4730
status
worker_name total_queue currently_running number_of_workers
job1 1 1 9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16635 次 |
| 最近记录: |