24 lines
720 B
Ruby
24 lines
720 B
Ruby
class ExpiredOrdersCleanupJob < ApplicationJob
|
|
queue_as :default
|
|
|
|
def perform
|
|
# Find and expire all draft orders that have passed their expiry time
|
|
expired_orders = Order.expired_drafts
|
|
|
|
Rails.logger.info "Found #{expired_orders.count} expired orders to process"
|
|
|
|
expired_orders.find_each do |order|
|
|
begin
|
|
order.expire_if_overdue!
|
|
Rails.logger.info "Expired order ##{order.id} for user ##{order.user_id}"
|
|
rescue => e
|
|
Rails.logger.error "Failed to expire order ##{order.id}: #{e.message}"
|
|
# Continue processing other orders even if one fails
|
|
next
|
|
end
|
|
end
|
|
|
|
Rails.logger.info "Completed expired orders cleanup job"
|
|
end
|
|
end
|