tech(expires-user.cron): ajoute une tache cron [débrayable] pour faire tourner la tache de suppression des usagers inutile
attention, pour notre instance, avec ma db anonymiser : ``` ExpiredUsersDeletionService.find_expired_user.pluck(:id).size => 1795515 ```
This commit is contained in:
parent
a49a5c2c93
commit
252b3e4719
3 changed files with 31 additions and 1 deletions
8
app/jobs/cron/expired_users_deletion_job.rb
Normal file
8
app/jobs/cron/expired_users_deletion_job.rb
Normal file
|
@ -0,0 +1,8 @@
|
|||
class Cron::ExpiredUsersDeletionJob < Cron::CronJob
|
||||
self.schedule_expression = "every day at 11 pm"
|
||||
|
||||
def perform(*args)
|
||||
return if ENV['EXPIRE_USER_DELETION_JOB_DISABLED'].present?
|
||||
ExpiredUsersDeletionService.process_expired
|
||||
end
|
||||
end
|
|
@ -253,3 +253,6 @@ BULK_EMAIL_QUEUE="low_priority"
|
|||
|
||||
# work in progress about attestation_v2
|
||||
WEASYPRINT_URL="http://10.33.23.204:5000/pdf"
|
||||
|
||||
# Use this env var to disable the user expiration mechanism
|
||||
EXPIRE_USER_DELETION_JOB_DISABLED=anything
|
||||
|
|
19
spec/jobs/cron/expired_users_deletion_job_spec.rb
Normal file
19
spec/jobs/cron/expired_users_deletion_job_spec.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
describe Cron::ExpiredUsersDeletionJob do
|
||||
subject { described_class.perform_now }
|
||||
|
||||
context 'when env[EXPIRE_USER_DELETION_JOB_DISABLED] is present' do
|
||||
before { expect(ENV).to receive(:[]).with('EXPIRE_USER_DELETION_JOB_DISABLED').and_return('anything') }
|
||||
|
||||
it 'does not call ExpiredUsersDeletionService.process_expired' do
|
||||
expect(ExpiredUsersDeletionService).not_to receive(:process_expired)
|
||||
subject
|
||||
end
|
||||
end
|
||||
|
||||
context 'when env[EXPIRE_USER_DELETION_JOB_DISABLED] is absent' do
|
||||
it 'calls ExpiredUsersDeletionService.process_expired' do
|
||||
expect(ExpiredUsersDeletionService).to receive(:process_expired)
|
||||
subject
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue