def main(): total_deadline = int(sys.argv[1]) delay = int(sys.argv[2]) wc_job = Job('word count') bzip2_job = Job('bzip2') h264_job = Job('h264') for i in range(20): wc_job.add_task(RUN_PATH + '/word_count.sh') for i in range(10): bzip2_job.add_task(RUN_PATH + '/bzip2.sh') for i in range(4): h264_job.add_task(RUN_PATH + '/h264.sh') for worker in config.workers: wc_job.set_per_server_time(worker, WC_PER_TASK_RUNNING_TIME) bzip2_job.set_per_server_time(worker, BZIP2_PER_TASK_RUNNING_TIME) h264_job.set_per_server_time(worker, H264_PER_TASK_RUNNING_TIME) wc_job.set_priority(3) bzip2_job.set_priority(2) h264_job.set_priority(1) # First batch print 'Dispatching first batch' job_set = [wc_job] for j in job_set: j.set_deadline(total_deadline) schedule = framework.get_dispatcher().schedule_jobs(job_set) print schedule t1 = Thread(target=framework.run_job_set, args=(job_set,)) t1.start() # Simulate gap between job arrival time.sleep(delay) # Second batch print 'Dispatching second batch' job_set = [bzip2_job, h264_job] for j in job_set: j.set_deadline(total_deadline - delay) schedule = framework.get_dispatcher().schedule_jobs(job_set) print schedule t2 = Thread(target=framework.run_job_set, args=(job_set,)) t2.start() # Wait till finish t1.join() t2.join() return 0