Я пишу приложение на Python, которое использует OpenStack для предоставления студентам доступа к ограниченному количеству виртуальных машин.
Студенты могут бронировать столики сейчас или в будущем.
Мне нужно ограничить количество виртуальных машин, запланированных в любое время, до X, при этом позволяя учащимся резервировать виртуальные машины, если доступны слоты/резервирование.
Объекты резервирования выглядят следующим образом (sqlalchemy ). Я бы знал время начала и продолжительность запрошенного бронирования, после чего мне нужно просмотреть существующие бронирования и посмотреть, не слишком ли много бронирований в запрошенный период времени. Поля задания *_— это имена заданий APScheduler.
class Reservation(Entity):
student = ManyToOne('Student', required=True)
class_id = ManyToOne('Class', required=True)
image = ManyToOne('Image', required=True)
# openstack image id filled in once the instance is started
instance_id = Field(UnicodeText)
# apscheduler jobs
stop_instance_job = Field(UnicodeText)
start_instance_job = Field(UnicodeText)
warn_reservation_ending_job = Field(UnicodeText)
check_instance_job = Field(UnicodeText)
Любые указатели на то, где искать примеры алгоритмов расписания или что-то в этом роде? Я даже не понимаю, что искать...
Спасибо.