اكتب كلاس باسم JobScheduler يُدير جدولة وتنفيذ المهام حسب الأولوية والوقت.
المطلوب:
- يجب تطبيق الدوال التالية:
add_job(job_id, priority, execution_time): تُضيف مهمة جديدةget_next_job(current_time): تُرجع المهمة التالية المطلوب تنفيذهاremove_job(job_id): تحذف مهمة معينة
- المهام تُنفذ حسب:
- الوقت (المهام الجاهزة أولًا)
- الأولوية الأعلى (رقم أقل = أولوية أعلى)
- ترتيب الإضافة (FIFO)
مثال:
scheduler = JobScheduler()
scheduler.add_job("job1", priority=2, execution_time=10)
scheduler.add_job("job2", priority=1, execution_time=10)
scheduler.add_job("job3", priority=1, execution_time=5)
scheduler.get_next_job(5) # "job3"
scheduler.get_next_job(10) # "job2"
scheduler.get_next_job(10) # "job1"
ملاحظات:
- استخدم قائمة أو heap لترتيب المهام
- تحقق من الوقت قبل إرجاع المهمة
- احذف المهمة بعد إرجاعها