由于Google App Engine的python版本不支持signal模块,如果方法不在2秒内返回,那么调用方法并抛出/捕获异常的最简单方法是什么?
最佳答案
如果您正在讨论RPC调用,例如数据存储,则可以创建一个带有截止日期的RPC(请参见create_rpc
),将RPC传递给数据存储函数(db.get,db.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模块。