【问题标题】:How do I have an API pickup where it left off after the request times out如何在请求超时后停止 API 拾取
【发布时间】:2021-01-03 23:36:31
【问题描述】:

我仍在开发这款鸡尾酒应用程序,但遇到了另一个问题。一段时间后,api调用会在一个小时后掉线; api 只会保持打开一个小时。在那一小时之后,我必须进行新的 api 调用。但我不想在尝试拉回数据时重新开始。我使用的数据中有超过 30 万条记录要匹配,平均需要大约 10 个小时才能完成。抱歉,如果这个问题没有任何意义,我还是编码新手,我正在尽我所能!

例如:

  1. 调用api
  2. 使用 csv 文件 300k 记录中的数据重新获取数据
  3. 取回数据。
  4. API 连接断开--- 需要建立新的 api 连接。
  5. 进行 API 调用
  6. 从 csv 文件中确定已匹配的数据,然后从下一条未匹配的记录中提取。

有没有办法确保当我必须获取新的 API 密钥或连接断开时,无论何时再次建立连接,它都会从中断的地方重新开始?

【问题讨论】:

  • 不确定您所说的“恢复数据”或“检索数据”,甚至“确定已匹配的数据”是什么意思。我无法分辨客户端与服务器上发生了什么。无论如何,如果搜索 30 万条记录需要 10 个小时——不是很多——那么应用程序的架构还有很多不足之处。这不应该花一两秒钟的时间吗?
  • @Noah 这就是我的想法......当我说“重新获取数据”时,我的意思是当它找到匹配项时,它将返回它通过的特定行的匹配数据。我不知道服务器发生了什么,但一个小时后它就下降了。所以一个小时后我必须重新连接并尝试找到从 api 接收到的最后一个匹配项,然后在下一行开始我的循环。我如何让 api 继续到它停止的地方?

标签: python api soap


【解决方案1】:

听起来您希望您的 API 具有客户端可以断开并重新连接的“会话”之类的东西。

服务器可以使用某种会话 ID 将您重新连接到它正在执行的任何长时间运行的查询。

不过,它可能会变得相当复杂。当没有客户端连接时,查询可能会完成,因此需要将结果存储在由会话 ID 键入的某个位置,以便 API 重新连接时可以获取结果。

附言。 10 小时匹配 30 万条记录?那是一段疯狂的时间!我会对该匹配算法进行一些分析。

【讨论】:

  • 我将结果存储在一个列表中。我如何构建这个会话来做到这一点?
  • 如果没有(很多)更多细节,很难进一步提供帮助。我倾向于将结果存储在由会话 id 索引的数据库中 - 但你还需要考虑安全性 - 是什么阻止了 B 仅通过劫持会话 id 来获取 A 的结果。
  • 对不起,我完全错过了这个。你需要多少细节?我正在连接的服务器一直在爆炸。
猜你喜欢
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 2020-01-14
  • 2023-03-16
  • 1970-01-01
  • 2022-01-11
相关资源
最近更新 更多