Appengine:put_async不起作用(至少在开发服务器中)?

时间:2011-08-30 13:38:46

标签: python google-app-engine google-cloud-datastore

注意: 它在生产中工作。我的意思是,当我上传应用程序时,它的工作效果很好。问题出在开发服务器上。

以下是一些可以向您展示我正在尝试做的代码:

e = Employee(key_name = 'some_key_name',name='John Bonham')
db.put_async(e)

如果我这样做,过了一段时间我就试着去了它

e = Employee.get_by_key_name('some_key_name') # e is None

它不起作用。 e是没有!但是,如果我这样做:

e = Employee(key_name = 'some_key_name',name='John Bonham')
op = db.put_async(e)
op.get_result()

工作正常。

我缺少什么?

重要提示:我等待一段时间检查对象是否已创建!调用put_async后我没有得到。但是,即使一分钟后它仍然无效。我在开发服务器中!

1 个答案:

答案 0 :(得分:14)

如果您未在RPC上调用.wait().get_result(),则无法保证已完成。对于dev_appserver,它不是多线程的,实际工作是在调​​用这些方法时完成的 - 它实际上并不是在开发中异步,只是在生产中。