Piszę aplikację python, która używa OpenStack, aby zapewnić studentom dostęp do ograniczonej liczby maszyn wirtualnych.Planowanie rezerwacji (nie restauracji) z pytonem
Studenci mogą rezerwować, teraz lub w przyszłości.
Muszę ograniczyć liczbę maszyn wirtualnych zaplanowanych w dowolnym momencie do X, jednocześnie umożliwiając studentom rezerwowanie vms, jeśli są dostępne miejsca/rezerwacje.
Obiekty rezerwacyjne wyglądają jak poniżej (sqlalchemy). Znałbym czas rozpoczęcia i długość żądanego zastrzeżenia, w którym to momencie muszę przejść przez istniejące zastrzeżenia i sprawdzić, czy w żądanym okresie istnieje zbyt wiele zastrzeżeń. Pola * _job są nazwami zadań 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)
Jakieś wskazówki, gdzie szukać przykładów algorytmów harmonogramów lub coś w tym stylu? Nie jestem nawet pewien, czego szukać ...
Dzięki.
To uderza mnie jako wniosek do algorytmu bankierskiego Dijkstry, który zwykle nie jest omawiany w harmonogramach pracy, ponieważ jego warunki wstępne (w szczególności czas wykonania) są trudne do poznania z góry, ale które masz. Ogólna klasa problemu to "Batch Scheduling" – msw
Great. Dziękuję za to. :) – curtis
+1 za dobrze sformułowane, krótkie, ale pełne pytanie. –