如何获得当前工作的优先权?

时间:2011-04-12 18:12:54

标签: telnet beanstalkd

在beanstalkd

telnet localhost 11300
USING foo
put 0 100 120 5
hello
INSERTED 1

如果我保留这份工作,怎么知道这份工作的优先顺序呢?我可以通过将新优先级等于当前优先级+100 来释放它吗?

1 个答案:

答案 0 :(得分:1)

Beanstalkd不会返回数据的优先级 - 但您可以轻松地将其作为元数据添加到您自己的邮件正文中。例如,使用Json作为消息包装器:

{'priority':100,'timestamp':1302642381,'job':'download http://example.com/'}

将保留的下一条消息将是所选管道中的下一个可用条目,根据优先级和时间 - 根据您最初将消息发送到队列时请求的任何延迟。

添加:您可以获得beanstalk作业的优先级(以及其他一些信息,例如之前保留的次数),但这是一个额外的调用 - 到 stats-job 命令。使用jobId调用,它返回大约十几个不同的信息。请参阅protocol文档和您的图书馆文档。