completed SMS gateway project

This commit is contained in:
Min Zeya Phyo
2025-10-22 17:22:17 +08:00
commit c883fa7128
190 changed files with 16294 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
class RetryFailedSmsJob < ApplicationJob
queue_as :default
def perform(sms_message_id)
sms = SmsMessage.find(sms_message_id)
# Only retry if message can be retried
return unless sms.can_retry?
# Reset status to queued and increment retry count
sms.increment_retry!
sms.update!(status: "queued", error_message: nil)
# Re-queue for sending with exponential backoff
wait_time = (2 ** sms.retry_count).minutes
SendSmsJob.set(wait: wait_time).perform_later(sms.id)
Rails.logger.info("Retrying failed SMS #{sms.message_id} (attempt #{sms.retry_count})")
rescue ActiveRecord::RecordNotFound => e
Rails.logger.error("SMS message not found: #{e.message}")
end
end