mam zaktualizowany plik rabbitmqadmin wspierania publikowania zawartości plików. Spróbuj znaleźć wiersz zawierający EXTRA_VERBS = {
jak również def invoke_publish(self):
i aktualizować swoją powiązany kod następująco
EXTRA_VERBS = {
'publish': {'mandatory': ['routing_key'],
'optional': {'payload': None,
'pfile': None,
'properties': {},
'exchange': 'amq.default',
'payload_encoding': 'string'},
'json': ['properties'],
'uri': '/exchanges/{vhost}/{exchange}/publish'},
'get': {'mandatory': ['queue'],
'optional': {'count': '1', 'requeue': 'true',
'payload_file': None, 'encoding': 'auto'},
'uri': '/queues/{vhost}/{queue}/get'}
}
i
def invoke_publish(self):
(uri, upload) = self.parse_args(self.args, EXTRA_VERBS['publish'])
if not 'payload' and 'pfile' in upload:
data = sys.stdin.read()
upload['payload'] = b64(data)
upload['payload_encoding'] = 'base64'
elif not 'payload' in upload:
with open('populate/' + upload['pfile']) as f: data = f.read()
upload['payload'] = b64(data)
upload['payload_encoding'] = 'base64'
resp = json.loads(self.post(uri, json.dumps(upload)))
if resp['routed']:
self.verbose("Message published")
else:
self.verbose("Message published but NOT routed")
Usuń 'populate/' +
z poniższej linii, jeśli chcesz, aby dostarczyć plik za pomocą ścieżki bezwzględnej.
with open('populate/' + upload['pfile']) as f: data = f.read()
Bez aktualizacjach otwarty (...) następujące polecenie pracował dla mnie w porządku, przy założeniu, że plik rules.json został umieszczony w katalogu względnego "zapełnić"
python rabbitmqadmin.py publish exchange=feed-mgmt-in routing_key='#' properties='{"type":"domain-collections/rules"}' pfile="rules.json"
Jak ten fragment publikować wiadomości/ładunki z pliku? – summerbulb
Spróbuj coś takiego: 'while read line; do knockmqadmin publish exchange = amq.default routing_key = test payload = "$ line"; done
aeryaguzov
'payload =" $ line "' złamie JSON \ -kwiaty takie jak '{" foo ":" \ "zagnieżdżone cudzysłowy \" "}' (ponieważ ty też interpretujesz \ -skoki). Ale możesz przekazać ładunek do stdin rabbitmqadmin. –