Sto scrivendo un'applicazione python che utilizza OpenStack per fornire agli studenti l'accesso a un numero limitato di macchine virtuali.Pianificazione delle prenotazioni (non ristorante) con python
Gli studenti possono effettuare prenotazioni, ora o in futuro.
Devo limitare il numero di macchine virtuali pianificate in qualsiasi momento a X, consentendo comunque agli studenti di prenotare vms se sono disponibili slot/prenotazioni.
Gli oggetti di prenotazione hanno il seguente aspetto (sqlalchemy). Vorrei sapere l'ora di inizio e la durata della prenotazione richiesta, a quel punto ho bisogno di passare attraverso le prenotazioni esistenti e vedere se ci sono troppe prenotazioni nel periodo di tempo richiesto. I campi * _job sono i nomi dei lavori di 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)
Qualsiasi indicazione su dove cercare esempi di algoritmi di pianificazione o qualcosa del genere? Non ho ancora chiaro cosa cercare ...
Grazie.
Questo mi sembra un'applicazione per Algoritmo di Dijkstra's Banker che normalmente non viene discusso molto nella pianificazione del lavoro in quanto le sue precondizioni (in particolare i tempi di esecuzione) sono difficili da sapere in anticipo, ma quali sono. La classe generale di problemi è "Pianificazione batch" – msw
Grande. Grazie gentilmente per quello. :) – curtis
+1 per domande ben formulate, brevi, ma complete. –