2

我有一个与我合作的电子商务网站的一次性折扣代码列表。我需要在我的网站上设置一个页面,我的用户可以在其中填写表格,然后将获得其中一个代码。代码是预先确定的,并以文本文件的形式发送给我;我不能即时生成它们。我需要找出从列表中获取未使用代码的最佳方法,然后同时将其从列表中删除(或更新标志以将其标记为已使用),以避免给两个人相同的任何可能性代码。换句话说,类似于队列,我可以从队列中原子地删除一个项目。

这个 web 应用程序将在 AWS 上运行,当前代码是 Python(尽管如果需要,我可能会使用其他东西;PHP 会很容易)。理想情况下,我会使用其中一种 AWS 服务或 mysql 来执行此操作,但如果其他解决方案不是很难集成的话,我对它们持开放态度。因为我想到了“队列”,所以 SQS 突然出现在我的脑海中,但这显然不是它的本意(例如,队列中剩余消息的 14 天限制肯定对我不起作用)。虽然我预计流量会非常有限(这意味着即使是非常老套的解决方案也可能会起作用),但我宁愿了解即使在规模上也能做到这一点的正确方法。

4

2 回答 2

0

Amazon DynamoDB 是来自 AWS 的快速 NoSQL 数据库,它可能非常适合此用例。设置数据库表很容易,您可以将代码加载到那里。DynamoDB 有一个DeleteItem 操作,它还允许您在相同的原子操作中检索数据(通过将ReturnValues参数设置为ALL_OLD)。这将允许您一次性获取和删除代码,因此没有其他请求/进程可以获取相同的代码。AWS 发布官方开发工具包来帮助您连接和使用他们的服务,包括 Python 和 PHP 开发工具包(请参阅http://aws.amazon.com/tools/)。

于 2013-07-22T15:49:14.120 回答
0

我不能给出实际的代码示例,但最简单的方法之一就是文件中的增量计数器,所以像

0
code1
code2
code3
etc

并且每次使用代码时都跳过那么多行。

您也可以在数据库中非常简单地执行此操作

于 2013-07-18T00:38:41.940 回答