Class: Auctify::EnsureAuctionsClosingJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/auctify/ensure_auctions_closing_job.rb

Instance Method Summary collapse

Instance Method Details

#performObject



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/jobs/auctify/ensure_auctions_closing_job.rb', line 7

def perform
  auctions = ::Auctify::Sale::Auction.in_sale
                                  .where("currently_ends_at <= ?", Time.current + checking_period_to_future)
  auctions.each do |auction|
    if auction.currently_ends_at <= Time.current
      Rails.logger.info("Queueing auction #{auction_label(auction)} for immediate close.")
      Auctify::BiddingCloserJob.perform_later(auction_id: auction.id)
    else
      Rails.logger.info("Delaying close of auction #{auction_label(auction)}.")
      Auctify::BiddingCloserJob.set(wait_until: auction.currently_ends_at).perform_later(auction_id: auction.id)
    end
  end
end