我正在开发一个投标应用程序在RoR时,每次拍卖有一个到期日期和时间。从概念上讲,我陷入了让正在进行的拍卖到期的困境。问题是,我得给竞标者提供一份正在进行的拍卖清单。不知何故,我需要丢弃过期的拍卖,只显示正在进行的拍卖。
一种方法是,在提供列表之前,检查每个拍卖的到期日期和时间,并在那里过滤掉过期的。这肯定会带来性能开销。
第二种方法是以非常短的间隔(例如一分钟左右)轮询拍卖列表,并在DB中用expired
位标记过期的拍卖。这更糟了。
我怎么才能玩得聪明呢?
您可以创建一个字典,其中键是过期时间,值是对相关拍卖的引用。当你开始拍卖时,你可以计算该拍卖的结束时间,并据此将其放入字典中。稍后,您可以简单地检查字典中当前时间的任何条目,而不是扫描所有拍卖的列表。