每第二次 Web 服务调用

Every second web service call

我需要编写一个简短的脚本,可以每秒消耗一次 REST 调用。大多数时候,它会返回一个响应:

"status": "idle"

但是,如果发生某些事情,我们将得到 "status": "scan",以及一些额外的参数。

我们使用这些参数,然后对云服务进行不同的调用。

然后我们将从中得到响应,并将 JSON 发送回本地网络服务。

然后一旦完成,它应该返回到每秒检查除空闲以外的状态。

  1. Python 是一种很好的语言,还是应该使用 Java?
  2. 每秒一次的通话都是通过 LAN 进行的,无需担心延迟或互联网带宽。
  3. 如果它崩溃或出现异常,我们需要能够轻松重启。

如有任何建议,我们将不胜感激。

返回的响应格式为:

[{'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