# File bin/experimental-filter.rb, line 110
def process_queue
  files = Dir[File.join($queue, 'new') + '/*'].sort { |a, b|
    queue_file_time(a) <=> queue_file_time(b)
  }
  files.each { |queue_file_name|
    begin
      File.open(queue_file_name) { |queue_file|
        RFilter::DeliveryAgent.process(queue_file, $log) { |agent|
          Deliver.new(agent).main
        }
      }
    rescue RFilter::DeliveryAgent::DeliverySuccess
      File::unlink(queue_file_name)
    rescue RFilter::DeliveryAgent::DeliveryReject
      # FIXME: for now, reject just drops the message on the floor
      File::unlink(queue_file_name)
    rescue RFilter::DeliveryAgent::DeliveryComplete
      # FIXME: truly defer somehow
    end
  }
end