namespace :stat do desc "Build all stats" task build: :environment do Rake::Task['stat:create:created_plan'].execute Rake::Task['stat:create:joined_user'].execute Rake::Task['stat:create:shared_plan'].execute Rake::Task['stat:create:exported_plan'].execute Rake::Task['stat:create_last_month:created_plan'].execute Rake::Task['stat:create_last_month:joined_user'].execute Rake::Task['stat:create_last_month:shared_plan'].execute Rake::Task['stat:create_last_month:exported_plan'].execute end task build_parallel: :environment do tasks = ["stat:create:created_plan", "stat:create:joined_user", "stat:create:shared_plan", "stat:create:exported_plan", "stat:create_last_month:created_plan", "stat:create_last_month:joined_user", "stat:create_last_month:shared_plan", "stat:create_last_month:exported_plan"] Parallel.each(tasks, progress: "Building Stats", in_processes: 4) do |task| Rake::Task[task].execute task end end task build_last_month: :environment do tasks = ["stat:create_last_month:created_plan", "stat:create_last_month:joined_user", "stat:create_last_month:shared_plan", "stat:create_last_month:exported_plan"] tasks.each do |task| Rake::Task[task].execute end end task build_last_month_parallel: :environment do tasks = ["stat:create_last_month:created_plan", "stat:create_last_month:joined_user", "stat:create_last_month:shared_plan", "stat:create_last_month:exported_plan"] Parallel.each(tasks) do |task| Rake::Task[task].execute task end end namespace :create do desc "Creates created plan stats for every org since they joined" task created_plan: :environment do Org::CreateCreatedPlanService.call(threads: 2) end desc "Creates joined user stats for every org since they joined" task joined_user: :environment do Org::CreateJoinedUserService.call(threads: 2) end desc "Creates shared plan stats for every org since they joined" task shared_plan: :environment do Org::CreateSharedPlanService.call(threads: 2) end desc "Creates exported plan stats for every org since they joined" task exported_plan: :environment do Org::CreateExportedPlanService.call(threads: 2) end end namespace :create_last_month do desc "Creates created plan stats for today's last month for every org" task created_plan: :environment do Org::CreateLastMonthCreatedPlanService.call(threads: 2) end desc "Creates joined user stats for today's last month for every org" task joined_user: :environment do Org::CreateLastMonthJoinedUserService.call(threads: 2) end desc "Creates shared plan stats for today's last month for every org" task shared_plan: :environment do Org::CreateLastMonthSharedPlanService.call(threads: 2) end desc "created exported plan stats for today's last month for every org" task exported_plan: :environment do Org::CreateLastMonthExportedPlanService.call(threads: 2) end end end