Class: SurveyCheckWorker
- Inherits:
-
Object
- Object
- SurveyCheckWorker
- Includes:
- Sidekiq::IterableJob, Sidekiq::Job
- Defined in:
- app/workers/survey_check_worker.rb
Overview
Removes empty survey enrollments — those whose customer topics have no topic
responses. Scheduled via config/sidekiq_production_schedule.yml.
Uses Sidekiq::IterableJob so a mid-run deploy or worker restart resumes from
the cursor instead of re-sweeping every enrollment. Pruning an empty
enrollment is idempotent: a resumed run won't re-encounter rows it already
deleted, and it never touches enrollments that have responses.
Instance Method Summary collapse
-
#build_enumerator(cursor:) ⇒ Enumerator
Yields
(enrollment, cursor)pairs. - #each_iteration(enrollment, *_args) ⇒ void
Instance Method Details
#build_enumerator(cursor:) ⇒ Enumerator
Returns yields (enrollment, cursor) pairs.
16 17 18 |
# File 'app/workers/survey_check_worker.rb', line 16 def build_enumerator(cursor:) active_record_records_enumerator(SurveyEnrollment.all, cursor: cursor) end |
#each_iteration(enrollment, *_args) ⇒ void
This method returns an undefined value.
24 25 26 |
# File 'app/workers/survey_check_worker.rb', line 24 def each_iteration(enrollment, *_args) enrollment.destroy! if enrollment.customer_topics.joins(:topic_responses).empty? end |