Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以清空 Gearman 服务器上的作业队列?我正在为 Gearman 使用 python 驱动程序,并且文档没有任何关于清空队列的信息。我想这个功能应该存在,可能直接连接到 Gearman 服务器。
我遇到了这种方法:
/usr/bin/gearman -t 1000 -n -w -f function_name > /dev/null
这基本上将所有作业转储到 /dev/null 中。
telnetable管理协议(搜索“管理协议”)也没有清空队列的命令,只有一个关闭命令。
如果您希望避免停机,您可以编写一个通用的“工作消费者”工作人员并使用它来清空队列。我已经设置了一个脚本,它需要一个工作名称列表,然后坐在那里接受工作并使用它们。
就像是:
# generic_consumer.py job1 job2 job3
您可以使用管理协议的状态命令来获取函数名称和队列计数的列表。管理协议文档告诉您响应的格式。
# (echo status ; sleep 0.1) | netcat 127.0.0.1 4730
据我从文档中得知并使用gearman和PHP,清除作业队列的唯一方法是重新启动到gearmand作业服务器。如果您使用的是持久作业队列,则还需要清空用作持久存储的任何内容,如果这是数据库存储,则需要清空所有行的相应表。
停止 gearmand --> 空表行 --> 启动 gearmand
希望这足够清楚。