Module: Legion::Extensions::Llm::Ledger::Runners::RetentionPurge

Extended by:
RetentionPurge, Logging::Helper
Included in:
RetentionPurge
Defined in:
lib/legion/extensions/llm/ledger/runners/retention_purge.rb

Constant Summary collapse

PURGEABLE_TABLES =
%i[
  llm_conversations
].freeze
BATCH_SIZE =
500

Instance Method Summary collapse

Instance Method Details

#purge_expiredObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/legion/extensions/llm/ledger/runners/retention_purge.rb', line 20

def purge_expired
  db = ::Legion::Data.connection
  total_deleted = 0

  PURGEABLE_TABLES.each do |table|
    next unless db.table_exists?(table)

    deleted = purge_table(db, table)
    total_deleted += deleted
    log.info("[ledger] retention_purge: deleted #{deleted} expired rows from #{table}") if deleted.positive?
  end

  { result: :ok, deleted: total_deleted }
rescue StandardError => e
  handle_exception(e, level: :error, handled: true, operation: 'retention_purge')
  { result: :error, error: e.message }
end