Class: Auctify::BiddingCloserJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/auctify/bidding_closer_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(auction_id:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/jobs/auctify/bidding_closer_job.rb', line 7

def perform(auction_id:)
  return if auction_id.blank?
  begin
    auction = Auctify::Sale::Auction.find(auction_id)
  rescue ActiveRecord::RecordNotFound
    return
  end

  if Time.current < auction.currently_ends_at
    Rails.logger.info("Too soon for closing of auction #{auction_label(auction)}.")
  else
    Rails.logger.info("Closing auction #{auction_label(auction)} NOW!")
    Auctify::Sale::Auction.with_advisory_lock("closing_auction_#{auction_id}") do
      # can wait unitl other BCJob release lock and than continue!
      auction.close_bidding! if auction.reload.in_sale?
    end
  end
end