Class: Users::BatchStatusCleanerService

Inherits:
Object
  • Object
show all
Defined in:
app/services/users/batch_status_cleaner_service.rb

Constant Summary collapse

BATCH_SIZE =
100

Class Method Summary collapse

Class Method Details

.execute(batch_size: BATCH_SIZE) ⇒ Object

Cleanup BATCH_SIZE user_statuses records rubocop: disable CodeReuse/ActiveRecord



9
10
11
12
13
14
15
16
17
18
19
# File 'app/services/users/batch_status_cleaner_service.rb', line 9

def self.execute(batch_size: BATCH_SIZE)
  scope = UserStatus
    .select(:user_id)
    .scheduled_for_cleanup
    .lock('FOR UPDATE SKIP LOCKED')
    .limit(batch_size)

  deleted_rows = UserStatus.where(user_id: scope).delete_all

  { deleted_rows: deleted_rows }
end