用JSP / MySQL实现自动出价功能

问题描述 投票:0回答:1

目前正在开发一个项目,并可以使用一些建议来解决如何为类似于Ebay的Web应用程序实施自动出价系统。

我的问题实际上是处理'自动'功能。在最初的想法,我想我可以做一个MySQL触发器,但是,我很快学会了触发器,不允许你插入/更新触发表。

我能想到的唯一其他真正的解决方案是使用Java在服务器端处理这个问题,但是,我可以看到这个实现具有较差的时间复杂度:

EG

自动出价的工作方式是,创建新的出价项0.01高于其他用户对指定商品的出价,而自动出价限制尚未达到

如果许多用户配置了自动出价,这可以迭代很长一段时间,并且在每次迭代时系统都会进行更新查询,我想这可能会在真实用户的任何类型的生产环境中变慢......

另外,如果我做了服务器端解决方案,这意味着当一些给定的,不幸的用户发送一次性出价或配置自动出价时,他们将等待服务器处理此工作,然后才能获得正确的响应。

虽然在这样的场景中创建一个与最高自动出价限制相对应的出价项目是有意义的,但我确实需要经历这个过程+0.01来回到实际模型的自动系统,不幸的是。

那么,有什么想法可以更好地解决这个问题吗?

java mysql jsp servlets jdbc
1个回答
0
投票

如果您是拍卖和自动驾驶系统的操作员,则根本不需要任何计时器。结果在您知道所有自动限制和人工出价时确定:最高出价获胜,平局通常是较早的出价时间(或您提出的任何内容)。

对于您的服务器,autobid与普通出价相同,只是用户体验它们的方式不同。您的服务器只需知道存在哪些出价以及何时添加出价。

你可以,例如每次实际出价或自动限额更改时,都会添加并更新有效步骤出价。它处理它需要多长时间,结果也是一样的。如果2个用户例如在截止日期前0.2s $ 100k加一个autobid,一个用户在截止日期前0.1s增加$ 101k出价,你需要花费0.2s以上才能产生1000万$ 0.01步。但要向大多数竞标者回答最相关的问题,“我是否赢了,我需要支付什么?”,您无需等待步骤创建过程结束,您只需要查看3个出价即可立即告诉用户3胜,并且必须支付10万美元和1美分。

从技术上讲,您甚至不需要将步骤存储在数据库中,因为每次有人想要观看详细的出价过程时,您的服务器端代码都可以从存储的限制和出价中生成这些(确定的)步骤。这似乎与您的要求不符,但可能是一个功能。 (你可以称之为“压缩”甚至“规范化”)。

对于用户,您显然只会显示截至当前时间的结果出价。客户端可以使用计时器进行自动刷新以使其更加令人兴奋(因为,与您相比,他还不知道谁将获胜),但这与您的服务器端代码无关。

© www.soinside.com 2019 - 2024. All rights reserved.