@@ -19,6 +19,7 @@ def invoke_wasm(
1919 dict_out = False ,
2020 ini_file = None ,
2121 host_list = None ,
22+ num_retries = 30 ,
2223):
2324 """
2425 Main entrypoint to invoke an arbitrary message in a Faasm cluster
@@ -86,15 +87,15 @@ def invoke_wasm(
8687 )
8788 raise RuntimeError ("Error preloading scheduling decision!" )
8889
89- result = invoke_and_await (url , msg , expected_num_messages )
90+ result = invoke_and_await (url , msg , expected_num_messages , num_retries )
9091
9192 if dict_out :
9293 return MessageToDict (result )
9394
9495 return result
9596
9697
97- def invoke_and_await (url , json_msg , expected_num_messages ):
98+ def invoke_and_await (url , json_msg , expected_num_messages , num_retries ):
9899 """
99100 Invoke the given JSON message to the given URL and poll the planner to
100101 wait for the response
@@ -106,10 +107,11 @@ def invoke_and_await(url, json_msg, expected_num_messages):
106107 # tolerate this a number of times (for example, to accomodate for dynamic
107108 # cluster sizes)
108109
109- num_retries = 10
110- sleep_period_secs = 0.5
110+ sleep_period_secs = 1.5
111111
112- for i in range (num_retries ):
112+ i = 0
113+ while i < num_retries :
114+ i += 1
113115 response = post (url , data = json_msg , timeout = None )
114116 if response .status_code == 500 and response .text == "No available hosts" :
115117 print ("No available hosts, retrying... {}/{}" .format (i + 1 , num_retries ))
0 commit comments