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


问题内容

注意 :它确实可以在生产中使用。我的意思是,当我上传应用程序时,它确实很不错。问题在开发服务器中。

这是一些可以向您展示我正在尝试执行的代码:

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是None!但是,如果我这样做:

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

它工作正常。

我想念什么?

重要说明:我等待一段时间检查是否创建了对象! 调用put_async之后我没有得到。但是,即使在一分钟后,它仍然不起作用。我在开发服务器中!


问题答案:

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