我在Google App Engine上有大约一百万个实体的“队列”。我必须使用查询从队列中“弹出”项目。
各地运行着许多客户端进程,这些进程不断向堆栈发出请求。我的问题是,当一个客户端请求一个项目时,我要确保从队列的最前面删除该项目,然后将其发送到该客户端进程,而没有其他进程。
当前,我正在查询该项目,修改其属性,以便对队列的查询不再包括该项目,然后保存该项目。使用此方法,通常一件商品同时发送到多个客户进程。我怀疑这是因为在进行写入以及将其反射(reflect)到其他进程时存在延迟。
也许我需要以某种方式使用事务,但是当我调查时发现有一些“陷阱”。解决这个问题的好方法是什么?
最佳答案
我看到两种解决方法:
关于python - Google App Engine的线程类型解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9795585/