Class: ChronoForge::Configuration
- Inherits:
-
Object
- Object
- ChronoForge::Configuration
- Defined in:
- lib/chrono_forge/configuration.rb
Overview
Engine-wide configuration. Set via ChronoForge.configure in an initializer.
Instance Attribute Summary collapse
-
#branch_merge_queue ⇒ Object
The queue the branch-merge poller (BranchMergeJob) runs on.
Instance Method Summary collapse
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
21 22 23 |
# File 'lib/chrono_forge/configuration.rb', line 21 def initialize @branch_merge_queue = :default end |
Instance Attribute Details
#branch_merge_queue ⇒ Object
The queue the branch-merge poller (BranchMergeJob) runs on.
This MUST NOT be a queue that a fan-out's own children saturate: merge_branches enqueues the poller AFTER dispatching the branch's children, so on a shared queue it is starved behind the whole backlog and only gets a worker slot near the end — it then polls once, at pending≈0, and backs off, so the parent's convergence lags by up to max_interval and no mid-drain throughput is recorded. Because the poller is OUR code (not the user's job), its placement is a first-class setting rather than something to monkey-patch onto BranchMergeJob.
Defaults to :default (fine when fan-outs run on their own queues). For large fan-outs, point this at a dedicated queue with its own worker so the poller runs promptly throughout the drain.
19 20 21 |
# File 'lib/chrono_forge/configuration.rb', line 19 def branch_merge_queue @branch_merge_queue end |