【问题标题】:Is there a way to speed up making several API calls in Python?有没有办法加快在 Python 中进行多个 API 调用?
【发布时间】:2022-01-04 01:06:24
【问题描述】:

所以我正在尝试编写一个机器人来更新 Discord 服务器中每个用户的角色,具体取决于他们在游戏中的关注者。我在数据库中链接了每个人的帐户。我的问题是服务器有大约 500 个用户,这个数字显然会随着服务器的增长而增加,对于每个用户我需要:

  1. 检查用户是否在我的数据库中。
  2. 如果它们是:
    • 获取他们的游戏信息(1 个 API 请求)
    • 更新他们的 Discord 角色(7 个请求)
  3. 如果不是
    • 更新他们的 Discord 角色(7 个请求)

有没有办法减少通过该服务器中所有成员所需的时间?我目前正在使用 for 循环遍历每个用户。

【问题讨论】:

    标签: python api discord.py


    【解决方案1】:

    查看python的线程和队列,但快速简单的方法是添加ThreadPoolExecutor并让它管理线程。 将 API 请求封装到一个函数中,并使用 ThreadPoolExecutor.submit(f,...) 将每个 API 调用分派到单独的线程中,这将通过“重叠”单个调用的时间来减少总 IO 时间。

    搜索ThreadPoolExecutor的例子,官方文档有点缺。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-22
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多