由于python版本的Google App Engine不支持信号模块,如果方法在不到2秒的时间内没有返回,调用方法并抛出/捕获异常的最简单方法是什么?
答案 0 :(得分:5)
如果您正在讨论RPC调用(例如数据存储区),则可以使用截止日期创建RPC(请参阅create_rpc
),将RPC传递给数据存储区功能(db.get,{{3等等...),然后抓住db.put。
# Set a five-second timeout
rpc = db.create_rpc(deadline=5)
# A query:
query = YourModel.all().fetch(100, rpc=rpc)
DeadlineExceededErrors
URLFetch函数也需要截止日期参数。
对于您自己的代码,您可以自己实施检查,请参阅fetch模块。
答案 1 :(得分:0)
在循环中,您可以存储循环开始的时间并检查每次迭代的持续时间。
如果你在循环中不,事情会有点棘手。您可以每隔几行代码添加时间检查位。当然,这会产生非常难看的代码,但是如果没有能够生成可以在后台运行定时器并中断正在运行的代码的线程,那么就没有太多方法了。