Open
Description
The Aleph web server, built on top of Netty, gives the option of returning a manifold deferred object in addition to the standard ring response map. This allows the request to be carried out asynchronously.
The current instrument
middleware assumes a synchronous implementation. It would be great if async was supported as well.
It wouldn't be much work to get this working. Something along the lines of:
(defn wrap-metrics
[handler]
(fn [req]
(start-metrics)
(let [resp (handler req)]
(if (instance? manifold.deferred.Deferred resp)
(on-realized resp stop-metrics)
(stop-metrics))
resp)))
Of course, it means introducing manifold as a dependency. It's a small library though, and only introduces a couple of transitive dependencies.
Happy to submit a PR for this.
Metadata
Metadata
Assignees
Labels
No labels