是否可以清空齿轮工的作业队列

2024-04-26 22:53:50 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以清空Gearman服务器上的作业队列?我正在使用Gearman的python驱动程序,文档中没有任何关于清空队列的信息。我想这个功能应该存在,可能,与Gearman服务器直接连接。


Tags: 文档功能服务器信息队列作业驱动程序清空
3条回答

据我从文档和PHP使用gearman所知,清除作业队列的唯一方法是重新启动gearmand作业服务器。如果使用的是持久作业队列,则还需要清空用作持久存储的任何内容,如果这是DB storage,则需要清空所有行的相应表。

停止gearmand-->;空表行-->;启动gearmand

希望这足够清楚。

我遇到了this method

/usr/bin/gearman -t 1000 -n -w -f function_name > /dev/null

基本上将所有作业转储到/dev/null中。

telnetableadministrative protocol(搜索“管理协议”)也没有清空队列的命令,只有shutdown命令。

如果希望避免停机,可以编写一个通用的“作业使用者”工作线程,并使用它清空队列。我已经将一个设置为一个脚本,它接受一个作业名称列表,然后坐在那里接受作业并消费它们。

类似于:

# generic_consumer.py job1 job2 job3

您可以使用管理协议的status命令来获取队列中函数名和计数的列表。administrative protocol文档告诉您响应的格式。

# (echo status ; sleep 0.1) | netcat 127.0.0.1 4730

相关问题 更多 >