2011-10-24 106 views
1
rpcs = [] 
for url in urls: 
    rpc = urlfetch.create_rpc(deadline=5.0) 
    urlfetch.make_fetch_call(rpc, url) 
    rpcs.append(rpc) 
while len(rpcs) > 0: 
    rpc = apiproxy_stub_map.UserRPC.wait_any(rpcs) 
    res = rpc.get_result() 
    if res.status_code == 200: 
    ...... do something with result 
    rpcs.remove(rpc) 

如何確定從什麼網址收到響應?如何從異步請求App引擎中的RPC對象獲取響應URL?

回答

1

使用回調:

def handle_result(rpc, url): 
    ..... [your code goes here] 

def create_callback(rpc, url): 
    return lambda: handle_result(rpc, url) 

rpcs = [] 
for url in urls: 
    rpc = urlfetch.create_rpc(deadline=5.0) 
    rpc.callback = create_callback(rpc, url) 
    urlfetch.make_fetch_call(rpc, url) 
    rpcs.append(rpc) 

while rpcs: 
    rpc = apiproxy_stub_map.UserRPC.wait_any(rpcs) 
    rpcs.remove(rpc) 
相關問題