2

我有一个关于 beantalkd 队列的快速问题。

所以假设我在 beanstalk 队列中有 500,000 个准备好的作业,它们正在等待处理,同时更多的作业被添加到这个队列中。所有这些工作都具有相同的优先级。

是否可以在就绪队列中移动一个作业,以便在该队列中的所有其他作业之前对其进行处理?

我刚刚开始使用豆茎,我想知道这是否可以在豆茎中完成?

我在linux环境下。

我想我可以删除那个特定的作业并重新插入它,优先级允许它首先被处理,但我想避免这样做,除非有一个命令允许我这样做。

如果需要更多信息,请告诉我,我提前感谢您的帮助。:)

4

2 回答 2

0

目前 Beanstalkd 中没有这样的命令。

这就是不同优先级的用途。

于 2013-01-24T23:17:15.160 回答
0

Beanstalk 从 1.12 版开始有一个新命令:reserve-job.

可以通过其 ID 保留作业。为客户端保留作业后,客户端在作业超时之前运行 (TTR) 作业的时间有限。当作业超时时,服务器会将作业放回就绪队列。该命令如下所示:

reserve-job <id>\r\n

<id>是要保留的作业 ID

这应该立即返回以下响应之一:

NOT_FOUND\r\n如果工作不存在或被客户保留,或者没有准备好、埋没或延迟。 RESERVED <id> <bytes>\r\n<data>\r\n. 请参阅reserve 命令的说明。

假设您知道需要调整优先级的作业的 ID,您可以连接到 beanstalk,保留该特定作业,然后release使用新的优先级:

release <id> <pri> <delay>

于 2021-02-23T21:07:14.177 回答