- Add 30-minute expiry window for draft tickets with automatic cleanup - Implement 3-attempt payment retry mechanism with tracking - Create background job for cleaning expired draft tickets every 10 minutes - Add comprehensive UI warnings for expiring tickets and retry attempts - Enhance dashboard to display pending draft tickets with retry options - Add payment cancellation handling with smart retry redirections - Include rake tasks for manual cleanup and statistics - Add database fields: expires_at, payment_attempts, last_payment_attempt_at, stripe_session_id - Fix payment attempt counter display to show correct attempt number (1/3, 2/3, 3/3)
23 lines
685 B
Ruby
23 lines
685 B
Ruby
# Schedule regular cleanup of expired draft tickets
|
|
#
|
|
# This will run every 10 minutes to clean up expired draft tickets
|
|
# If you're using a more sophisticated scheduler like sidekiq or whenever,
|
|
# you can move this logic there.
|
|
|
|
Rails.application.config.after_initialize do
|
|
# Only run in production and development, not in test
|
|
unless Rails.env.test?
|
|
# Schedule the cleanup job to run every 10 minutes
|
|
Thread.new do
|
|
loop do
|
|
begin
|
|
CleanupExpiredDraftsJob.perform_later
|
|
rescue => e
|
|
Rails.logger.error "Failed to schedule expired drafts cleanup: #{e.message}"
|
|
end
|
|
|
|
sleep 10.minutes
|
|
end
|
|
end
|
|
end
|
|
end |