рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЖрд░рдкреАрд╕реА

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдиреАрдВрд╡ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдХреБрдЫ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЬреЛ рдЖрдк рдЖрдЬ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрд┐рдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рдПрдкреАрдЖрдИ рд╣реИ urlfetch ред рдФрд░ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рджреВрд░рд╕реНрде рд╕реЗрд╡рд╛ рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреЗ 2 рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рджреЛрдиреЛрдВ рдереЛрдбрд╝рд╛ рднрд░реА рд╣реБрдИ рд╣реИрдВред рд╣рдо рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рд╣реИ (рдпрд╣ рдЖрд╕рд╛рди рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ), рдФрд░ рдлрд┐рд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред

from google.appengine.api import urlfetch, apiproxy_stub_map urls = ['http://service1.com', 'http://service2.com'] # Etc. rpcs = [] for url in urls: rpc = urlfetch.create_rpc(deadline=1.0) urlfetch.make_fetch_call(rpc, url) rpcs.append(rpc) rpc = apiproxy_stub_map.UserRPC.wait_any(rpcs) # Now rpc is the first rpc that returned a result. Have at it! 


рд╡рд╣ рд╕рдм рд╣реИ! рдпрджрд┐ рдЖрдк рдЗрд╕ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдРрдк рдЗрдВрдЬрди рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдбреЙрдХреНрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдЕрдЧрд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдмрд╛рд░-рдмрд╛рд░ Wait_any () рднреА рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реВрдЪреА рд╕реЗ рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдз рдХреЛ рд╣рдЯрд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ: Wait_any () рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдЕрдиреБрд░реЛрдз рд╕реВрдЪреА рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдкрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВред

рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рднреА рдРрдк рдЗрдВрдЬрди рд░рдирдЯрд╛рдЗрдо рдЙрдирдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдпрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рди UserRPC.wait_all () рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреА рд╣реИ (рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ)ред

Source: https://habr.com/ru/post/In114669/


All Articles