У меня есть требование, где мне нужно прочитать сообщения DLQ и сделать соответствующие действия на основе этого.Ранее приведенный ниже фрагмент кода работал нормально до обновления RabbitMQ / Erlang.Теперь он выдает ошибку Bad Request.
import urllib2
import json
import optparse
class http_worker:
def authentication(self, url, user, pw):
password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, url, user, pw)
self.auth = urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(self.auth)
urllib2.install_opener(opener)
def call_url(self, url, body_raw):
body = json.dumps(body_raw)
#
# urllib2 post since there is body
#
req = urllib2.Request(url, body, {'Content-Type': 'application/json'})
return urllib2.urlopen(req)
user = "guest"
pwd = "guest"
rabbit_host = "http://localhost:15672"
host_suffix = "/api/queues/%%2F/%s/get" %(rabbit_queue_name)
url = rabbit_host + host_suffix
body_raw = {"count":5000,"requeue":True,"encoding":"auto","truncate":50000}
worker = http_worker()
worker.authentication(url, user, pwd)
res = worker.call_url(url, body_raw)
result = json.loads(res.read())
...
Итак, я попытался изменить это и использовал новые библиотеки Python, такие как urllib.request, urllib.error, urllib.parse и запросы.Но проблема остается.
Это потому, что последняя версия RabbitMQ перестала принимать вызов REST такого рода?Что может быть альтернативой, чтобы прочитать все сообщения одно за другим в Python для выполнения необходимых действий?
заранее спасибо,