Class: WhittakerTech::Aeon::Disposer
- Inherits:
-
Object
- Object
- WhittakerTech::Aeon::Disposer
- Defined in:
- app/services/whittaker_tech/aeon/disposer.rb
Overview
Stateless service that soft-deletes invalidated Occurrence rows according to a policy hierarchy: per-allocation +disposal_policy+ override, falling back to the global Configuration#disposal_policy default.
Supported policies: - +:ephemeral+ — purge immediately on next Disposer run - +:windowed+ — purge after Configuration#invalidated_retention_window - +:historical+ / +:permanent+ — never auto-purge
Sets +purged_at+ in bounded batches. Never hard-deletes.
Constant Summary collapse
- DISPOSAL_BATCH_SIZE =
Maximum rows to purge per policy pass.
1_000
Class Method Summary collapse
-
.call(batch_size: DISPOSAL_BATCH_SIZE) ⇒ Integer
Total rows purged across all passes.
Instance Method Summary collapse
-
#call ⇒ Integer
Runs ephemeral and windowed purge passes.
-
#initialize(batch_size:) ⇒ Disposer
constructor
A new instance of Disposer.
Constructor Details
#initialize(batch_size:) ⇒ Disposer
Returns a new instance of Disposer.
30 31 32 |
# File 'app/services/whittaker_tech/aeon/disposer.rb', line 30 def initialize(batch_size:) @batch_size = batch_size end |
Class Method Details
.call(batch_size: DISPOSAL_BATCH_SIZE) ⇒ Integer
Returns total rows purged across all passes.
25 26 27 |
# File 'app/services/whittaker_tech/aeon/disposer.rb', line 25 def self.call(batch_size: DISPOSAL_BATCH_SIZE) new(batch_size: batch_size).call end |
Instance Method Details
#call ⇒ Integer
Runs ephemeral and windowed purge passes.
37 38 39 40 41 42 |
# File 'app/services/whittaker_tech/aeon/disposer.rb', line 37 def call purged = 0 purged += purge_ephemeral! purged += purge_windowed! purged end |