php - 设置服务器端脚本以连续记录来自数据库中 API 的流式 JSON 数据?

标签 php mysql json wordpress api

我正在尝试建立一个到 API 的服务器端连接,该连接全天不断地解析 API 的 JSON 响应并将其记录在 MySQL 数据库中。我的网站被设置为 Wordpress 网站,因此任何特定于 Wordpress 的解决方案也适用。

例如,我知道如何使用 Python 保持连接打开并打印响应。像这样的东西有效:

import requests
import json

headers = {'Content-Type': 'application/json',
           "Authorization": "Bearer api_key_here"}
baseurl = 'http://stream.url/here'
payload = { 'key_id' : 'key'}

r = requests.get(baseurl, params=payload, headers=headers, stream=True)
print(r.headers)
print('\n')

for line in r.iter_lines():
    if line:
        print(json.loads(line.decode("utf-8"))) 

上述脚本的输出从 API 服务器传入时逐行流出。 例如,假设我每秒都会收到这样的响应:

{'type': 'TYPE', 'time': '2019-11-18T21:07:12.422789431Z', 'key1': [{'dat1': '1.10739', 'dat2': 10000000}], 'key2': [{'dat1': '1.10752', 'dat2': 10000000}]}

我现在想做的是设置一个服务器端脚本(最好是 PHP,但我也可以使用其他解决方案),基本上可以做到这一点,除了不打印响应,而是将其记录到数据库表中,全天实时。

我没有太多设置这样的服务器端脚本的经验,所以不知道从哪里开始。

最佳答案

PHP 确实不太“听”。您确实有两个选择:

  1. 调用 PHP 脚本来检查输出并每隔几秒运行一次的 Cronjob。
  2. 除了打印之外,还可以将 Python 脚本 POST 到某处而不是/。

关于php - 设置服务器端脚本以连续记录来自数据库中 API 的流式 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58924569/

相关文章:

java - 从 JSON 创建对象(GSON : java. lang.IllegalStateException:应为 BEGIN_OBJECT 但为 STRING)

javascript - 如何使用 Node js 将属性附加到现有的 JSON

php - MYSQL关注者系统: Indexing the Followers Table

mysql - 仅清除单个表的 Rake 任务

mysql - 根据其他 2 个表中的列值更新表

python - 如何将新的 json 对象插入现有的 json 文件(在对象中间)

php - 选择具有范围的下拉列表并在数据库中搜索介于两者之间

php - 如何在 foreach 循环中删除数组元素?

php - 获取主键作为外键放入其他表中

python - 尝试在 OS X 上安装 MySQLdb 时出现错误