class Rake::Application

def run

call +top_level+ to run your top level tasks.
+init+ on your application. Then define any tasks. Finally,
If you wish to build a custom rake command, you should call

* Run the top level tasks (+run_tasks+).
* Define the tasks (+load_rakefile+).
* Initialize the command line options (+init+).

three steps:
Run the Rake application. The run method performs the following
def run
  standard_exception_handling do
    init
    load_rakefile
    thread_pool.gather_history if options.job_stats == :history
    top_level
    thread_pool.join
    if options.job_stats
      stats = thread_pool.statistics
      puts "Maximum active threads: #{stats[:max_active_threads]}"
      puts "Total threads in play:  #{stats[:total_threads_in_play]}"
    end
    ThreadHistoryDisplay.new(thread_pool.history).show if options.job_stats == :history
  end
end