Slack API-对话.列表性能随着存档通道数量的增加而降低



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

当我们到达conversations.list端点时,我们会应用一个过滤器来排除存档的通道,但过滤是在分页之后应用的,因此我们必须在大量空页面中进行分页。起初,我想我可以说,如果一个页面是空的,就跳出循环,忽略其余页面。然而,我发现,如果我在第3页取消归档一个通道,那么当我使用conversations.list时,第1页和第2页是空的(这些页面上的所有通道都已归档(,新取消归档的通道仍将在第3页面上。有了这种行为,我需要循环浏览所有页面,以确保获取任何未归档的频道。

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

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

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

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

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

为了防止将来出现大量预定消息,您可以立即通过chat.deleteScheduledMessage删除预定消息

最新更新