由于Google App Engine的python版本不支持signal模块,如果方法不在2秒内返回,那么调用方法并抛出/捕获异常的最简单方法是什么?

最佳答案

如果您正在讨论RPC调用,例如数据存储,则可以创建一个带有截止日期的RPC(请参见create_rpc),将RPC传递给数据存储函数(db.getdb.put,等等),然后捕获DeadlineExceededErrors

# Set a five-second timeout
rpc = db.create_rpc(deadline=5)

# A query:
query = YourModel.all().fetch(100, rpc=rpc)

URLFetchfetch函数还接受一个deadline参数。
对于您自己可以实现的代码,请参见time模块。

09-09 23:37
查看更多