每第二次 Web 服务调用
Every second web service call
我需要编写一个简短的脚本,可以每秒消耗一次 REST 调用。大多数时候,它会返回一个响应:
"status": "idle"
但是,如果发生某些事情,我们将得到 "status": "scan",以及一些额外的参数。
我们使用这些参数,然后对云服务进行不同的调用。
然后我们将从中得到响应,并将 JSON 发送回本地网络服务。
然后一旦完成,它应该返回到每秒检查除空闲以外的状态。
- Python 是一种很好的语言,还是应该使用 Java?
- 每秒一次的通话都是通过 LAN 进行的,无需担心延迟或互联网带宽。
- 如果它崩溃或出现异常,我们需要能够轻松重启。
如有任何建议,我们将不胜感激。
返回的响应格式为:
[{'status': 'idle', 'log_updated_at': None, 'eprom_version': '03.21', 'data': {}, 'controller_type': 'single_ball', 'address': 1}]
我在将其理解为 json 时遇到了一些挑战,以便通过以下逻辑访问状态元素。
import time
import requests
while True:
try:
r = requests.get(local_rest_url)
json_data = r.json()
if json_data.get('status') == 'idle':
time.sleep(1) # wait 1 second
continue # and try again
r = requests.post(cloud_service_url, data=json_data)
cloud_response = r.json()
r = requests.post(local_rest_url, data=cloud_response)
except Exception:
pass # any error, just ignore and restart the loop
我需要编写一个简短的脚本,可以每秒消耗一次 REST 调用。大多数时候,它会返回一个响应:
"status": "idle"
但是,如果发生某些事情,我们将得到 "status": "scan",以及一些额外的参数。
我们使用这些参数,然后对云服务进行不同的调用。
然后我们将从中得到响应,并将 JSON 发送回本地网络服务。
然后一旦完成,它应该返回到每秒检查除空闲以外的状态。
- Python 是一种很好的语言,还是应该使用 Java?
- 每秒一次的通话都是通过 LAN 进行的,无需担心延迟或互联网带宽。
- 如果它崩溃或出现异常,我们需要能够轻松重启。
如有任何建议,我们将不胜感激。
返回的响应格式为:
[{'status': 'idle', 'log_updated_at': None, 'eprom_version': '03.21', 'data': {}, 'controller_type': 'single_ball', 'address': 1}]
我在将其理解为 json 时遇到了一些挑战,以便通过以下逻辑访问状态元素。
import time
import requests
while True:
try:
r = requests.get(local_rest_url)
json_data = r.json()
if json_data.get('status') == 'idle':
time.sleep(1) # wait 1 second
continue # and try again
r = requests.post(cloud_service_url, data=json_data)
cloud_response = r.json()
r = requests.post(local_rest_url, data=cloud_response)
except Exception:
pass # any error, just ignore and restart the loop