OpenStack を使用して学生が限られた数の仮想マシンにアクセスできるようにする Python アプリケーションを作成しています。
学生は、現在または将来の予約を行うことができます。
スロット/予約が利用可能な場合は学生が VM を予約できるようにしながら、いつでもスケジュールされる仮想マシンの数を X に制限する必要があります。
予約オブジェクトは次のようになります (sqlalchemy)。リクエストされた予約の開始時間と長さがわかり、その時点で既存の予約を調べて、リクエストされた期間に予約が多すぎるかどうかを確認する必要があります。*_job フィールドは、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)
スケジュール アルゴリズムなどの例をどこで探すべきかについての指針はありますか? 何を検索すればよいのかさえ明確ではありません...
ありがとう。