# frozen_string_literal: true
namespace :task do
desc "Generate random tasks for testing" task :random_generate, %i[amount max_sleep] => [:environment] do |_task, args| amount = args.fetch(:amount, 500).to_i max_sleep = args.fetch(:max_sleep, 30).to_i execution_types = Slot .where(node_id: { '$in': Node.available.pluck(:id) }) .pluck(:execution_type) .uniq raise "No slots available" if execution_types.empty? puts "Creating #{amount} tasks with max_sleep #{max_sleep}" amount.to_i.times do |index| print "." random_sleep = rand(max_sleep) execution_type = execution_types.sample Task.create!( name: "task-#{index}-sleep-#{random_sleep}-#{execution_type}", image: "busybox", cmd: "sleep #{random_sleep}", execution_type: execution_type, tags: { type: 'test' }, persist_logs: true ) end puts "\n Done!!" end
end