Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 17 additions & 10 deletions app/jobs/get_usps_proofing_results_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ class GetUspsProofingResultsJob < ApplicationJob
queue_as :long_running

def perform(_now)
return true unless ipp_enabled?
return true if ipp_ready_job_enabled?
return unless job_can_run?

@enrollment_outcomes = {
enrollments_checked: 0,
Expand All @@ -27,20 +26,16 @@ def perform(_now)
enrollments_passed: 0,
}

reprocess_delay_minutes = IdentityConfig.store.
get_usps_proofing_results_job_reprocess_delay_minutes
pending_enrollments = InPersonEnrollment.needs_usps_status_check(
...reprocess_delay_minutes.minutes.ago,
)

started_at = Time.zone.now
pending_enrollments.update(last_batch_claimed_at: started_at)
enrollments_to_check = InPersonEnrollment.needs_usps_status_check_batch(started_at)

analytics.idv_in_person_usps_proofing_results_job_started(
enrollments_count: enrollments_to_check.count,
reprocess_delay_minutes: reprocess_delay_minutes,
job_name: self.class.name,
)

check_enrollments(enrollments_to_check)

analytics.idv_in_person_usps_proofing_results_job_completed(
Expand All @@ -50,8 +45,6 @@ def perform(_now)
percent_enrollments_network_error: summary_percent(:enrollments_network_error),
job_name: self.class.name,
)

true
end

private
Expand All @@ -74,6 +67,20 @@ def ipp_ready_job_enabled?
IdentityConfig.store.in_person_enrollments_ready_job_enabled == true
end

def job_can_run?
ipp_enabled? && !ipp_ready_job_enabled?
end

def reprocess_delay_minutes
IdentityConfig.store.get_usps_proofing_results_job_reprocess_delay_minutes
end

def pending_enrollments
@pending_enrollments ||= InPersonEnrollment.needs_usps_status_check(
...reprocess_delay_minutes.minutes.ago,
)
end

def check_enrollments(enrollments)
last_enrollment_index = enrollments.length - 1
enrollments.each_with_index do |enrollment, idx|
Expand Down
41 changes: 6 additions & 35 deletions app/jobs/get_usps_ready_proofing_results_job.rb
Original file line number Diff line number Diff line change
@@ -1,42 +1,13 @@
class GetUspsReadyProofingResultsJob < GetUspsProofingResultsJob
queue_as :long_running
private

def perform(_now)
return true unless ipp_enabled? && ipp_ready_job_enabled?

@enrollment_outcomes = {
enrollments_checked: 0,
enrollments_errored: 0,
enrollments_network_error: 0,
enrollments_expired: 0,
enrollments_failed: 0,
enrollments_in_progress: 0,
enrollments_passed: 0,
}
def job_can_run?
ipp_enabled? && ipp_ready_job_enabled?
end

reprocess_delay_minutes = IdentityConfig.store.
get_usps_proofing_results_job_reprocess_delay_minutes
enrollments = InPersonEnrollment.needs_status_check_on_ready_enrollments(
def pending_enrollments
@pending_enrollments ||= InPersonEnrollment.needs_status_check_on_ready_enrollments(
...reprocess_delay_minutes.minutes.ago,
)

started_at = Time.zone.now
analytics.idv_in_person_usps_proofing_results_job_started(
enrollments_count: enrollments.count,
reprocess_delay_minutes: reprocess_delay_minutes,
job_name: self.class.name,
)

check_enrollments(enrollments)

analytics.idv_in_person_usps_proofing_results_job_completed(
**enrollment_outcomes,
duration_seconds: (Time.zone.now - started_at).seconds.round(2),
percent_enrollments_errored: summary_percent(:enrollments_errored),
percent_enrollments_network_error: summary_percent(:enrollments_network_error),
job_name: self.class.name,
)

true
end
end
41 changes: 6 additions & 35 deletions app/jobs/get_usps_waiting_proofing_results_job.rb
Original file line number Diff line number Diff line change
@@ -1,42 +1,13 @@
class GetUspsWaitingProofingResultsJob < GetUspsProofingResultsJob
queue_as :long_running
private

def perform(_now)
return true unless ipp_enabled? && ipp_ready_job_enabled?

@enrollment_outcomes = {
enrollments_checked: 0,
enrollments_errored: 0,
enrollments_network_error: 0,
enrollments_expired: 0,
enrollments_failed: 0,
enrollments_in_progress: 0,
enrollments_passed: 0,
}
def job_can_run?
ipp_enabled? && ipp_ready_job_enabled?
end

reprocess_delay_minutes = IdentityConfig.store.
get_usps_proofing_results_job_reprocess_delay_minutes
enrollments = InPersonEnrollment.needs_status_check_on_waiting_enrollments(
def pending_enrollments
@pending_enrollments ||= InPersonEnrollment.needs_status_check_on_waiting_enrollments(
...reprocess_delay_minutes.minutes.ago,
)

started_at = Time.zone.now
analytics.idv_in_person_usps_proofing_results_job_started(
enrollments_count: enrollments.count,
reprocess_delay_minutes: reprocess_delay_minutes,
job_name: self.class.name,
)

check_enrollments(enrollments)

analytics.idv_in_person_usps_proofing_results_job_completed(
**enrollment_outcomes,
duration_seconds: (Time.zone.now - started_at).seconds.round(2),
percent_enrollments_errored: summary_percent(:enrollments_errored),
percent_enrollments_network_error: summary_percent(:enrollments_network_error),
job_name: self.class.name,
)

true
end
end
Loading