COGS 評測排隊問題

其實在做COGS之前,看到許多評測系統Pending...Waiting.....Running.....Accept這種格式,尤其是以 Vijos和pku爲代表,交了題還看不到結果,要在Status不斷刷新等待。我對這種模式十分反感,更喜歡USACO人性化的方式,所以COGS開發初期是完全以USACO爲藍本做的,從文件提交方式可以看出來。 最初做的時候沒有考慮排隊,也就是開啓多個線程,來多少評測多少,沒有考慮共享CPU造成卡時不准問題。後來考慮到了,就給評測機加上了鎖定功能,也引發了死鎖問題。上個版本修正了死鎖問題,但當OIER大量提交的時候會經常出現“當前沒有空閒的評測機”的問題。有人要求加上Waiting隊列,但我實在不想模仿Vijos,就自己想了一個解決方案。

實現評測和隊列,評測頁面、比賽評測頁面、提交列表頁面用Javascript重寫,動態排隊。全部由Ajax實現,無需刷新。

評測頁面效果圖 圖1 圖2 圖3 圖4

相關日誌