惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
小众软件
小众软件
博客园_首页
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
B
Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享

Benson's blog

Enjoy life Internship AI on academic research How AI Will Change the Mobile Ecosystem Look ahead Goodbye 2025 Hacker News to Kindle Another project How to imporve english Introduction of Fraud detection PopTranslate Last day in netease Better idea between Copilot-typed and CLI-typed assistant Gemini-cli LLM Post-Training experience Papers I readed recently about LLM application Difference between LLMs and traditional computer technology GRPO Weekly-#26 AI Application Weekly-#25 AI infra and application Weekly-#24 First week as LLM inference engineer Weekly-#23 seeking job Weekly-#22 2025 New Year AutoSwitch Translate Goodbye 2024 Weekly-#20 Breaking of glass Cross Entropy Loss of Triton Weekly-#18 Cross Entropy Loss of Triton Weekly-#17 Triton Puzzles Weekly-#16 AutoBuilder
slack迁移discord
Benson · 2024-07-19 · via Benson's blog

背景

之前加入的一个slack留学群组,历史记录里有很多宝贵的经验和文件,但slack免费版本只能显示最近三个月的消息。

最近社区有网友提到了这个事,建议群主把历史信息迁移到discord平台,群主也把历史记录down下来了,就万事俱备了。

恰好呢,我7.16日刚考完雅思,等结果的这两天可以把这事儿搞一下。

迁移

之前调研过,有slack迁移discord的工具特别好用,几乎无缝衔接,让我比较惊叹的是,一条消息下的回复列表,也能按照原格式迁移,几乎是无损迁移了,有了这个关键点就能很大程度保证迁移后的用户体验,其他问题感觉就不那么重要了。

具体步骤按照原作者给的github的操作路径执行就可以,比较费事的是,怎么给discord群组按照一定权限加机器人,我找了半天,竟然是要自己构造一个链接,机器人的权限信息就在链接的参数里,访问这个链接点击确认,就加进去了,这个用户体验着实有点别扭。也可能是我没找对姿势吧。

主要问题

真正迁移的过程中,遇到的大问题就一个,每次程序跑了3-5小时,就会因为网络原因(或者其他原因,我看着像网络问题)断开,而且,整个程序是先初始化了 discord 的 client,再一条条把消息通过bot发到discord群组,网络原因嘛,第一方案就是重试,但发现只重试 “发送消息” 这个小步骤没有用,还会持续报一样的错误,这里我确实找不到原因了。

所以呢,就只能在最外层加重试,也就是每次失败后,重新初始化client,这样能解决失败的问题,引入的新工作量是,需要加一个缓存(姑且叫他缓存),记录下上次失败时迁移到哪个位置了,这次从这个位置继续,避免重新迁移。

所以最终运行的代码版本,相比原版,就增加了外层重试和缓存的逻辑,算是成功迁移了。最终版的代码,提了PR,但感觉加的功能比较挫,大概率不会merge,留在那儿给后人提个醒也行。

效果

支持能的功能如下

  • 评论:每条消息下的评论,能按照原格式迁移,无缝衔接,很棒
  • 内容:除了文字、链接,图片、附件也能正常显示;过大的文件无法迁移
  • 用户:能迁移头像和用户名,太强了
  • 时间:新平台的内容发送时间为迁移时间,非原消息的实际发送时间;新平台每条消息前面会附加真实的发送时间,作为替代方案,这是原工具的功能
  • 附件:有附件的消息新平台会分成两条发送,第一条是附件以外的文字信息,第二条是附件

详细记录

这个过程总计耗时2天,程序跑了24小时左右,详细的调试过程如下

7.17 14:00

跑一个小时失败,网络不稳定,换香港服务器重跑

7.17 21:00

跑3.5小时失败,网络不稳定,给await加了10次重试,每次5分钟

7.18 07:40

跑了4小时失败,迁了一万条消息,运行时间、成功迁移的数量跟上次差不多;问题是上次加的重试覆盖范围不足,扩大了范围,9:45 重跑;关注下内存和cpu

7.18 12:32

跑到 college 申请群 2024-03-18 出错,跟上次出错不是同一个位置,非内容问题

修改成出错超过10分钟就跳过,重新跑,12:32 开始跑

结论:1)内存稳定,不是内存问题 2)内容跟上次出错位置不同,非内容问题

7.18 15:13

跑到 社区主频道 2022-11-01 出错;

excption 代码逻辑出错导致,修改重跑, 15:36重跑

报错信息:疑似网络不稳定的问题

结论:重跑能成功,非内容问题

7.18 20:24

18:47 断了,跑了三个小时,未知原因,

7.19 8:38

添加外层重试和缓存,从主频道开始跑,跑了10个小时跑完

共72943条消息,社区主频道之后迁移失败消息有134条,一共预估300条左右,占比不到0.5%

致谢

  • 感谢原作者的代码
  • 感谢群主提供的机会