【问题标题】:Implementing Auto-Bidding Functionality with JSP/MySQL使用 JSP/MySQL 实现自动出价功能
【发布时间】:2019-09-04 23:01:09
【问题描述】:

目前正在从事一个项目,可以就如何为类似于 Ebay 的 Web 应用程序实施自动出价系统提出一些建议。

我的问题实际上是处理“自动”功能。最初的想法是,我认为我可以只做一个 MySQL 触发器,但是,我很快了解到触发器不允许您插入/更新触发表。

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

例如

自动出价的工作方式是在未达到自动出价限制的情况下创建比其他用户对指定项目的出价高 0.01 的新出价项

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

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

虽然在这种情况下只创建一个与最高自动出价限制相对应的出价项是有意义的,但我确实需要通过 +0.01 来回运行实际模型一个自动-系统,不幸的是。

那么,有什么更好的方法来解决这个问题吗?

【问题讨论】:

    标签: java mysql jsp servlets jdbc


    【解决方案1】:

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

    对于您的服务器,自动出价与正常出价相同,只是用户体验不同。您的服务器只需要知道存在哪些出价以及何时添加它们。

    你可以例如每次实际出价或自动出价限制发生变化时,添加和更新有效步进出价。无论处理它需要多长时间,结果都是一样的。如果有 2 个用户,例如在截止日期前 0.2 秒添加 100,000 美元的自动出价,而一个用户在截止日期前 0.1 秒添加 101,000 美元的出价,则生成 1000 万美元的 0.01 步将花费您超过 0.2 秒的时间。但是要回答大多数投标人最相关的问题,“我中标了吗?我需要支付什么?”,您无需等待步骤创建过程结束,您只需查看 3 个投标即可立即告诉用户 3 获胜,并且必须支付 10 万美元和 1 美分。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 2015-07-05
      • 1970-01-01
      • 2010-10-17
      • 2017-01-07
      • 2022-08-15
      • 2013-04-20
      • 2015-04-11
      相关资源
      最近更新 更多