Skip to Content Skip to Search
Methods
D
P
Q
S
Included Modules

Class Public methods

perform_later(args)

Under normal conditions, this should never run more than once in an hour. To override you can just change the argument by a second.

# File engines/member/app/jobs/member/daily_notifications_worker.rb, line 10
def self.perform_later(args)
  perform_async(args)
end

Instance Public methods

deserialize_time(time)

# File engines/member/app/jobs/member/daily_notifications_worker.rb, line 20
def deserialize_time(time)
  return Time.zone.at(time) if time.is_a?(Numeric)
  return Time.zone.parse(time) if time.is_a?(String)

  time
end

perform(time)

# File engines/member/app/jobs/member/daily_notifications_worker.rb, line 14
def perform(time)
  run_time = deserialize_time(time).change(min: 0)

  queue_workers(run_time)
end

queue_workers(run_time)

# File engines/member/app/jobs/member/daily_notifications_worker.rb, line 27
def queue_workers(run_time)
  for_time = {
    year: run_time.year,
    month: run_time.month,
    day: run_time.day,
    hour: 9
  }

  sites(for_time, run_time).map(&:id).each do |id|
    Member::AvailableContentWorker.perform_async(
      id,
      for_time.stringify_keys,
      run_time.to_i,
      %w[protected_pages]
    )
  end
end

sites(for_time, run_time)

# File engines/member/app/jobs/member/daily_notifications_worker.rb, line 45
def sites(for_time, run_time)
  ContentSearch::Daily.new(
    for_time, search_time: run_time
  ).sites.where(sites: {archived: [false, nil]})
end