class Nuntius::TransportRefreshJob

def perform(provider_name, message)

def perform(provider_name, message)
  return if message.delivered_or_blocked? || message.refreshes >= 3
  provider = Nuntius::BaseProvider.class_from_name(provider_name, message.transport).new(message)
  message = provider.refresh
  # FIXME: This may need to be more atomic
  message.refreshes += 1
  message.save!
  if message.delivered_or_blocked?
    message.cleanup!
  else
    Nuntius::TransportRefreshJob.set(wait: message.refreshes + 5).perform_later(provider_name, message)
  end
end