(crux.api/listen node
event-opts (1)
f) (2)
You can subscribe to Crux events using crux.api/listen
(crux.api/listen node
event-opts (1)
f) (2)
1 | A map which contains which event to listen to along with any relevant options |
2 | The function to run when the event triggers |
event-ops
must contain :crux/event-type
You can .close
the return value from (crux.api/listen …)
to detach the listener, should you need to.
Event Type | Trigger |
---|---|
Crux indexing a transaction |
Key | Type | Explanation |
---|---|---|
| Boolean | Whether to include the transaction operations in the event data |
:crux/indexed-tx
passes one parameter to the function supplied to crux.api/listen
This parameter is a map of the following
Key | Value Type | Value |
---|---|---|
| Keyword |
|
| Long | ID of the indexed transaction |
| Date | Transaction time of the indexed transaction |
| Boolean | Whether the transaction was committed or aborted |
| List | List of the transaction operations indexed |
(crux/listen node {:crux/event-type :crux/indexed-tx, :with-tx-ops? true}
(fn [ev]
(println "event received!")
(clojure.pprint/pprint ev)))
(crux/submit-tx node [[:crux.tx/put {:crux.db/id :ivan, :name "Ivan"}]])
Will print
event received!
{:crux/event-type :crux/indexed-tx,
:crux.tx/tx-id ...,
:crux.tx/tx-time #inst "...",
:committed? true,
:crux/tx-ops [[:crux.tx/put {:crux.db/id :ivan, :name "Ivan"}]]}
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close