关于beanstalkd队列我有一个简单的问题。
所以说我在beanstalk队列中有500,000个就绪作业,它们只是等待处理,同时更多的作业被添加到这个队列中。所有这些工作都有同样的优先权。
是否可以在就绪队列中移动作业,以便可以在该队列中的所有其他作业之前处理该作业?
我刚开始使用beanstalk,我想知道在beanstalk中是否可以做到这一点?
我在Linux环境中。
我想我可以删除该特定作业并重新插入优先级,以便首先处理它,但我希望避免这样做,除非有一个允许我这样做的命令。
如果需要更多信息,请告诉我,我们提前感谢您的帮助。 :)
答案 0 :(得分:0)
目前在Beanstalkd中没有这样的命令。
这就是使用不同优先级的原因。
答案 1 :(得分:0)
从 1.12 版开始,Beanstalk 有一个新命令:reserve-job
。
一个工作可以通过它的 ID 来保留。为客户端保留作业后,客户端在作业超时之前运行 (TTR) 作业的时间有限。当作业超时时,服务器会将作业放回就绪队列。命令如下所示:
reserve-job <id>\r\n
<id>
是要保留的作业 ID
这应该立即返回以下响应之一:
NOT_FOUND\r\n
如果作业不存在或被客户保留,或者未准备好、埋藏或延迟。
RESERVED <id> <bytes>\r\n<data>\r\n
。请参阅保留命令的说明。
假设您知道需要调整优先级的作业的 ID,您可以连接到 beanstalk,保留该特定作业,然后release
使用新的优先级:
release <id> <pri> <delay>