#telnet #beanstalkd
#telnet #beanstalkd
Вопрос:
В beanstalkd
telnet localhost 11300
USING foo
put 0 100 120 5
hello
INSERTED 1
Как я могу узнать, каков приоритет этого задания, когда я его резервирую? И могу ли я освободить его, установив новый приоритет равным текущему приоритету 100?
Ответ №1:
Beanstalkd не возвращает приоритет вместе с данными, но вы могли бы легко добавить его в качестве метаданных в текст вашего собственного сообщения. например, с использованием Json в качестве оболочки сообщения:
{'priority':100,'timestamp':1302642381,'job':'download http://example.com/'}
Следующим зарезервированным сообщением будет следующая доступная запись из выбранных каналов в соответствии с приоритетом и временем — с учетом любой задержки, которую вы запросили при первоначальной отправке сообщения в очередь.
Дополнение: Вы можете получить приоритет задания beanstalk (а также ряд других сведений, например, сколько раз оно ранее резервировалось), но это дополнительный вызов команды stats-job. Вызываемый с помощью JobID, он возвращает около дюжины различных фрагментов информации. Смотрите документ «Протокол» и документы «Ваши библиотеки».
Комментарии:
1. хорошо, но как я могу выпустить задание с меньшим приоритетом, чем текущее? ie. например, self::priority 100??? возможно ли изменить содержимое задания перед его выпуском??
2. Нет. Оно возвращается в порядке приоритета / времени из просматриваемых вами каналов.