2016-11-16 140 views
0

我在RoR开发出价应用程序,每次拍卖都有到期日期和时间。我在概念上停滞不前,正在进行拍卖。问题是,我必须向投标人提供正在进行的拍卖清单。不知何故,我需要放弃过期的拍卖节目只有正在进行的。在这种情况下,有什么可以替代普通投票?

一种方法是,在提供清单之前,检查每个拍卖的到期日期和时间,并过滤掉过期的那些自己。这肯定会带来性能开销。

第二种方法是以很短的时间间隔(例如一分钟左右)轮询拍卖清单,并用DB中的expired位标记过期的拍卖清单。这更糟糕。

如何在这里玩智能?

+0

你可以发布过期字段的数据库结构吗?你用来轮询/查询的代码是什么? – guiniveretoo

+0

我还没有编码民意调查,这是一个想法 –

+0

因此,由于这是一个拍卖网站,拍卖是否有某种'如果有人在XX时间内到期的时间出价XX'到期'? – guiniveretoo

回答

0

您可以创建一个字典,其中的密钥是到期时间,并且这些值是对相关拍卖的引用。当您开始拍卖时,您可以计算该拍卖的结束时间并将其放入字典中。稍后,您可以简单地检查字典中当前时间的任何条目,而不是扫描所有拍卖的列表。

+0

这不起作用。在我访问时,一些拍卖可能已经过期。这些将不会被映射到结束时键入的字典中的存储区。 –

+0

我想象拍卖会每隔一整秒钟过期。你应该能够在一秒钟内映射它们。如果你担心通过大桶爬取只是使用更多桶......也就是说,实际上你可以检查字典中的参考文献,这些参考文献将来会失去任意秒数。即在13:10:15检查哪些在13:11:15到期,并将任何添加到“短名单”;那么您可以将您的轮询(对于在当前时间结束的拍卖)减少到这个简短列表。 –

相关问题