Как получить приоритет текущей работы? - PullRequest
2 голосов
/ 12 апреля 2011

В beanstalkd

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

Как я могу узнать, каков приоритет этой работы, когда я ее зарезервирую?И можно ли освободить его, сделав новый приоритет равным текущий приоритет + 100 ?

1 Ответ

1 голос
/ 13 апреля 2011

Beanstalkd не возвращает приоритет данным, но вы можете легко добавить его в качестве метаданных в собственном теле сообщения. например, с Json в качестве оболочки сообщений:

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

Следующим сообщением, которое будет зарезервировано, будет следующая доступная запись из выбранных пробирок в соответствии с приоритетом и временем - с учетом любой задержки, запрошенной вами при первоначальной отправке сообщения в очередь.

Добавление: Вы можете получить приоритет задания beanstalk (а также ряд других сведений, например, сколько раз оно было зарезервировано ранее), но это дополнительный вызов - на команду stats-job . Вызванный с помощью jobId, он возвращает около десятка различных фрагментов информации. См. Документ протокол и документацию к вашим библиотекам.

...