2015-10-05 58 views

回答

0

您應該有一個等候名單表,它包含具有用戶號碼,帳號ID和時間請求的等候名單/保留請求。然後,當某本書被返回時 - 觸發一個程序,將釋放的書籍分配給最早的等待列表請求,並通知已提出此請求的訂閱者。

而不是觸發器您還可以安排每天/每天運行兩次的計劃作業,並檢查是否有任何已列入等候列表的書籍可供使用。如果可用,則將該書分配給具有該書最早的等待列表請求的訂閱者。

如果您的系統負載不重,則使用觸發器,否則使用預定作業並在非高峯時段使用觸發器。

1

Robert Hanmer's book Patterns for Fault Tolerant Software具有稱爲隊列資源(46)的圖案:

對於服務存儲請求不能被在隊列立即處理[...]。爲隊列提供有限長度以提高請求在到達線頭時仍然很重要的可能性。

當請求是計算機生成的並且必須按順序處理時,應使用先進先出(FIFO)隊列。當人們產生請求時,隊列應該使用後進先出(LIFO,又名堆棧)策略(如在FRESH WORK BEFORE STALE(55)中)來管理插入和移除。這將有助於人們獲得良好的服務。最後放在隊列中的請求會認爲他們收到了優秀的服務,並且在隊列中放置了最長請求的人可能已經放棄了。

在EQUITABLE RESOURCE ALLOCATION(45)的指導下分配資源應該能夠識別已經排隊的請求和那些新鮮且從未排隊的請求。