IAddon hive.connectors. Construction is pure. initialize! validates the
config and starts the digest scheduler; shutdown! stops it.
The scheduler is one daemon thread that wakes every :digest/tick-seconds, reads the persisted state, and posts the daily digest when it is due (the local hour reached, today not posted). Due-ness comes from the state file, so a restart never posts twice and a host that was down at the hour posts when it returns.
Config: manifest :addon/config, then config.edn
:addons {"hive.connectors" {:digest/channel "#general" ..}}. See
hive.connectors.digest.config for every key.
IAddon `hive.connectors`. Construction is pure. `initialize!` validates the
config and starts the digest scheduler; `shutdown!` stops it.
The scheduler is one daemon thread that wakes every :digest/tick-seconds,
reads the persisted state, and posts the daily digest when it is due (the
local hour reached, today not posted). Due-ness comes from the state file,
so a restart never posts twice and a host that was down at the hour posts
when it returns.
Config: manifest `:addon/config`, then config.edn
`:addons {"hive.connectors" {:digest/channel "#general" ..}}`. See
hive.connectors.digest.config for every key.(addon-ctor config)hive-addon.mount constructor: config -> uninitialized IAddon.
hive-addon.mount constructor: config -> uninitialized IAddon.
(announce-deps settings)Effects for the release roundup: the digest's, posting to :announce/channel.
Effects for the release roundup: the digest's, posting to :announce/channel.
(default-deps settings)Production effects for settings. Secrets resolve per call, so a token
rotated in pass or the environment is picked up without a restart. Posts
go to :digest/channel; see announce-deps for the roundup's channel.
Production effects for `settings`. Secrets resolve per call, so a token rotated in pass or the environment is picked up without a restart. Posts go to :digest/channel; see `announce-deps` for the roundup's channel.
(make-addon)(make-addon seed)Uninitialized IAddon. No thread or file is touched.
Uninitialized IAddon. No thread or file is touched.
(post! a)(post! {:keys [state] :as a} opts)Post now. force? posts even when today already has a post.
Post now. `force?` posts even when today already has a post.
(tick! {:keys [state] :as a})One scheduler wake-up: post when due.
One scheduler wake-up: post when due.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |