【发布时间】:2019-07-14 11:33:00
【问题描述】:
eBay 如何结束拍卖并标记获胜者?假设数据库中有一个拍卖结束日期,一旦该时间超过当前时间,就需要关闭拍卖,标记获胜者等。这样的事情在 sql 2005 中是如何处理的?他们是否每秒查询数据库以查找过期的拍卖?显然,他们需要在拍卖结束后立即将其标记为已关闭。他们不可能为每次拍卖创建 sql 作业,或者是吗?有任何想法吗?我有一个遵循类似思考过程的集成,需要帮助。
【问题讨论】:
-
我会假设在某个地方你会在内存中生成一个队列来存储在接下来的二十分钟内结束的每个项目,然后在每次页面加载时检查它,然后每十五分钟更新一次该列表数据库,使其永远不会过时。
-
我无法想象他们正在从网页处理。它需要在结束后立即生效,如果有人在该页面上,则需要更新。在页面加载时为每个用户检查该队列会产生很多开销。
-
您假设在接收端有一个现成的 RDBMS。有(最终)但我真的怀疑是否有 T-SQL 或 PL-SQL 管理“最后一秒”。拍卖的结束太奇怪了,无法处理。我保证有自定义 C/C++ 代码在非常低的级别管理该进程,例如TCP/UDP 数据包。它最终确实会进入数据库,但是......如果你曾经在 Ebay 上卖过汽车,(我有)你会目睹只有低级代码才能处理的最后一秒的疯狂。
-
这是一个发人深省的问题 - 虽然我不认为您的 SQL DB 问题接近目标,但我喜欢您的吊臂。
标签: sql sql-server-2005 message-queue