【发布时间】:2012-03-20 21:53:32
【问题描述】:
我在谷歌应用引擎上有一个大约一百万个实体的“队列”。我必须使用查询从队列中“弹出”项目。
有一堆客户端进程在各处运行,不断地向堆栈发出请求。我的问题是,当其中一个客户端请求一个项目时,我想确保从队列的前面删除该项目,将其发送到该客户端进程,而不是其他进程。
目前,我正在查询该项目,修改其属性,以便对队列的查询不再包含该项目,然后保存该项目。使用这种方法,将一个项目同时发送到多个客户端进程是很常见的。我怀疑这是因为我进行写入以及将它们反映到其他进程时存在延迟。
也许我需要以某种方式使用事务,但是当我研究它时,有几个“陷阱”。解决这个问题的好方法是什么?
【问题讨论】:
-
您的队列是如何表示的?在应用引擎队列中?
-
我假设您正在数据存储上实现“队列”?问题标题似乎与问题主体无关,为什么需要GAE的“线程类型解决方案”?
标签: python multithreading google-app-engine transactions bigtable