【问题标题】:Slack API - conversations.list performance decrease as number of archived channels increaseSlack API - 随着存档频道数量的增加,conversations.list 性能下降
【发布时间】:2021-06-18 08:43:32
【问题描述】:

我正在尝试提高 Slack 集成的性能,因为获取所有频道需要很长时间。我们处于免费的 slack 层,因此我们没有使用 API 删除频道的选项。当我们的自动化运行时松弛时,我们创建一个通道并在完成后将其存档。这导致我们的工作空间中有大量存档频道。

当我们点击conversations.list 端点时,我们应用过滤器来排除存档频道,但过滤是在分页之后应用的,因此我们必须翻阅大量空白页面。最初我想我可以说如果一个页面是空的,就跳出循环并忽略其余的页面。但是,我发现如果我在第 3 页上取消存档频道,当我使用 conversations.list 时,第 1 页和第 2 页是空的(这些页面上的所有频道都已存档)并且新取消存档的频道仍将在第 3 页上。有了这种行为,我需要遍历所有页面以确保我抓住了所有未归档的频道。

我们使用conversations.list 端点来查看我们的软件中是否存在用于给定记录的通道。在创建新记录或编辑现有记录时,我们需要按名称搜索对话。为此,我们获取所有频道并定期填充本地频道缓存,以便我们可以查找给定频道名称的频道 ID。当我们必须填充通道缓存时,根据连接类型,可能需要几分钟才能获取所有通道

如果有一种方法可以在 API 中按名称搜索频道,这将解决问题,因为我们可以只搜索我们需要的频道名称,而无需获取每个频道。但是,我在 API 参考中找不到这样的方法,conversations.list 的额外参数似乎没有帮助。

只是想知道是否有人遇到过这样的问题,如果遇到过,他们做了什么来解决这个问题?感谢阅读!

【问题讨论】:

    标签: slack-api


    【解决方案1】:

    我刚刚发现了一种非常巧妙的方法来做到这一点。您说得对,conversations.list 是官方方式,没有其他方法可以按名称搜索频道,您的寻呼是应该发生的。

    但是,如果您可以访问chat.scheduleMessage,则可以按频道名称安排消息。这将允许您通过查看您是否收到有效响应或错误来确定频道是否存在其名称(只需将消息安排在未来)。

    为防止将来预定消息泛滥,您可以立即通过chat.deleteScheduledMessage删除预定消息

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 1970-01-01
      • 2012-08-25
      • 2018-09-22
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2012-01-22
      • 2020-09-02
      相关资源
      最近更新 更多