Skip to content

Commit 6278847

Browse files
Fixed potential problems with logging
1 parent 83ec467 commit 6278847

5 files changed

Lines changed: 37 additions & 21 deletions

File tree

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.3.0.4
1+
2.3.0.6

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.3.0.4
1+
2.3.0.6

app/jobs/process_submitter_completion_job.rb

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,41 @@ def perform(params = {})
3131
enqueue_completed_webhooks(submitter, is_all_completed:)
3232
end
3333

34+
MAX_RETRY_ATTEMPTS = 5
35+
3436
def create_completed_submitter!(submitter)
37+
retry_attempts ||= 0
3538
completed_submitter = CompletedSubmitter.find_or_initialize_by(submitter_id: submitter.id)
3639

3740
return completed_submitter if completed_submitter.persisted?
3841

39-
submission = submitter.submission
42+
verification_method, sms_count = extract_verification_data(submitter)
43+
44+
completed_submitter.assign_attributes(
45+
submission_id: submitter.submission_id,
46+
account_id: submitter.submission.account_id,
47+
is_first: !CompletedSubmitter.exists?(submission: submitter.submission_id, is_first: true),
48+
template_id: submitter.submission.template_id,
49+
source: submitter.submission.source,
50+
sms_count:,
51+
verification_method:,
52+
completed_at: submitter.completed_at
53+
)
4054

55+
completed_submitter.save!
56+
completed_submitter
57+
rescue ActiveRecord::RecordNotUnique
58+
retry_attempts += 1
59+
raise if retry_attempts >= MAX_RETRY_ATTEMPTS
60+
61+
sleep 0.1 * retry_attempts
62+
retry
63+
end
64+
65+
def extract_verification_data(submitter)
4166
complete_verification_events, sms_events =
4267
submitter.submission_events.where(event_type: %i[send_sms send_2fa_sms complete_verification complete_kba])
43-
.partition { |e| e.event_type == 'complete_verification' || e.event_type == 'complete_kba' }
68+
.partition { |e| e.event_type.in?(%w[complete_verification complete_kba]) }
4469

4570
complete_verification_event = complete_verification_events.first
4671

@@ -51,22 +76,9 @@ def create_completed_submitter!(submitter)
5176
complete_verification_event.data['method']
5277
end
5378

54-
completed_submitter.assign_attributes(
55-
submission_id: submitter.submission_id,
56-
account_id: submission.account_id,
57-
is_first: !CompletedSubmitter.exists?(submission: submitter.submission_id, is_first: true),
58-
template_id: submission.template_id,
59-
source: submission.source,
60-
sms_count: sms_events.sum { |e| e.data['segments'] || 1 },
61-
verification_method:,
62-
completed_at: submitter.completed_at
63-
)
64-
65-
completed_submitter.save!
79+
sms_count = sms_events.sum { |e| e.data['segments'] || 1 }
6680

67-
completed_submitter
68-
rescue ActiveRecord::RecordNotUnique
69-
retry
81+
[verification_method, sms_count]
7082
end
7183

7284
def create_completed_documents!(submitter)

app/jobs/process_submitter_reminders_job.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,13 @@ def self.schedule_interval
3232
def perform
3333
Account.active.find_each do |account|
3434
process_account_reminders(account)
35+
rescue StandardError => e
36+
# Log error but continue processing other accounts
37+
Rails.logger.error("ProcessSubmitterRemindersJob failed for account #{account.id}: #{e.message}")
38+
Rollbar.error(e, account_id: account.id) if defined?(Rollbar)
3539
end
3640
ensure
37-
# Reschedule the job for the next interval
41+
# Always reschedule to keep the reminder system running
3842
self.class.perform_in(self.class.schedule_interval)
3943
end
4044

lib/puma/plugin/sidekiq_embed.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def start_sidekiq!
4343
config.queues = sidekiq_config['queues']
4444
config.concurrency = ENV.fetch('SIDEKIQ_THREADS', 5).to_i
4545
config.merge!(sidekiq_config)
46-
config[:max_retries] = 13
46+
# Use max_retries from sidekiq.yml (production: 3) - don't override here
4747

4848
ActiveSupport.run_load_hooks(:sidekiq_config, config)
4949
end.instance_variable_get(:@config)

0 commit comments

Comments
 (0)