2015-10-05 78 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)的指导下分配资源应该能够识别已经排队的请求和那些新鲜且从未排队的请求。