Class: ScheduleWorkers::EventDriven::ExpirationEvents::ExpiredPricingAdjustmentWorker

Inherits:
ApplicationWorker
  • Object
show all
Defined in:
app/workers/schedule_workers/event_driven/expiration_events/expired_pricing_adjustment_worker.rb

Instance Method Summary collapse

Methods inherited from ApplicationWorker

unlimited_retry

Instance Method Details

#performObject

Performs the expiration event handling for ticket groups and restaurant packages.

This method is responsible for processing expired ticket groups and restaurant packages by checking their expiration dates against the previous day's date in the 'Asia/Bangkok' time zone. This worker runs every day at 00:00 (midnight) It retrieves the expired records and processes each one accordingly.

Logs any errors that occur during the processing of expired ticket groups and restaurant packages to Rollbar.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/workers/schedule_workers/event_driven/expiration_events/expired_pricing_adjustment_worker.rb', line 18

def perform
  yesterday = Time.use_zone('Asia/Bangkok') { Time.zone.yesterday }

  # handle expiration of ticket groups (voucher in marketplace)
  expired_ticket_groups = TicketGroup.where('selling_end_date = ?', yesterday)
  expired_ticket_groups.each do |expired_tg|
    process_expired_ticket_group(expired_tg)
  end

  # handle expiration of restaurant packages
  expired_restaurant_packages = HhPackage::RestaurantPackage.where('end_date = ?', yesterday)
  expired_restaurant_packages.each do |expired_rp|
    process_expired_restaurant_package(expired_rp)
  end
rescue StandardError => e
  APMErrorHandler.report(e)
end