0

今のところ、ペイロードとヘッダーを読み取って印刷するだけのlangohrメッセージハンドラーがあります。問題は、交換でメッセージを公開するときです。ドキュメントに記載されているようにヘッダーを照会することも (ヘッダー "h1" を取得することも)、ネイティブの clojure マップを使用することもできません。ここで何が間違っていますか?

(defn status-handler [ch {:keys [headers]} ^bytes payload]
  (let [data (String. payload "UTF-8")
        status {:status (json/read-str data :key-fn keyword)
                :metadata headers}]
    (println "job status update: " status)))

ヘッダー付きメッセージを公開する場合

ユーザー=> (パブリッシュ ch "some.topic.exchange" "key1" "{\"id\":1}" {:headers {"h1" "value"}}) nil

出力

ジョブステータスの更新: {:status {:id 1}, :metadata #object[java.util.HashMap 0x3cb4bf18 {h1=値}]}

4

1 に答える 1