Tags: jollopre/harmoniser
Tags
feat: [#55] Add Error handlers functionality (#56) * Centralise defaults for Harmoniser::Options * Bump bunny to its latest * Use cancel_consumers_before_closing! for channels * Remove warnings from Dockerfile * Change severity of default channel errors log to WARN * Introduce Harmoniser.configuration#on_error * Introduce Harmoniser.configuration#handle_error * Replace usages of logger with error severity with handle_error
feat: [#52] Selective retry for connection (#53) * Remove SignalException from Connection using Thread::Queue to communicate main process with thread dedicated to launch harmoniser * Refactor some bits for cli for better readability * Retry connecting only when Harmoniser is the main process, i.e. Harmoniser.server? is true
feat: [#47] Listen to memory and disk alarms (#48) * Remove usages of Harmoniser.connection * Update README and LICENSE * Introduce Connectable module for Publisher, Subscriber and Topology * Refactor Connection: ** Move dynamic props for Connection as part of the Connection instance ** Use logger instance with dependency injection * Use at_exit hook to maybe close Publisher connection when the code does not run as part of harmoniser process * Attempt to close Publisher connection also as part of harmoniser process * Attach callbacks for block/unblock at Connection flags: [SKIP_MANUAL]
feat: [#45] Configure concurrency of Harmoniser process (#46) * Introduce a concurrency example using Bunny * Update Bunny to its latest, i.e. 2.23 * Add concurrency option for the CLI. It defaults to unbounded concurrency * Introduce Launcher#stop to manage cancelling subscribers and closing connection instead of using at_exit hook. * Introduce concurrency at Launcher#start * Move recovery_attempt_started and recovery_completed callbacks to Connectable so that do not depend on Harmoniser but on connection method instead * Create/Push tag anytime a merge to master happens. * Make private HARMONISER constants defined at Publisher/Subscriber * Close channel only when Topology#declare is invoked * Introduce Harmoniser::Subscriber::Registry to accommodate the logic of the classes that are considered subscribers * Enrich on_error callback for Channel with reply_code and reply_text when `channel.close` is received from RabbitMQ * Kill process when ACK timeout is received * Set default work pool shutdown timeout to 25 for bounded concurrency