部署在Heroku的Python Twitch bot运行时修改是否同步到GitHub
问题解答
运行时计数变量同步问题
不会同步到GitHub代码库。你部署到Heroku的是你提交到GitHub时的代码固定快照,运行过程中计数变量的更新只存储在Heroku运行实例的临时内存中,既不会修改你部署时的原始代码文件,也不会自动触发GitHub的提交操作,所以你在GitHub上无法看到更新后的数值。
.txt文件写入内容同步问题
写入的内容仅保存在Heroku当前运行实例的临时文件系统中,不会同步到GitHub仓库。另外Heroku的实例(dyno)默认每24小时会自动重启,重启后所有运行过程中写入的本地文件都会被清空,即使不同步到GitHub,这些内容也无法在Heroku上长期留存。
实现修改同步到GitHub的方案
- 第一步在GitHub生成拥有目标仓库读写权限的个人访问令牌(PAT),权限仅勾选仓库读写相关选项即可,不要授予多余权限。
- 将生成的PAT添加到Heroku应用的配置变量(Config Vars)中,不要硬编码到代码里避免泄露。
- 在Python代码中引入
PyGitHub库,每次触发计数更新、.txt内容写入的命令时,直接调用GitHub API修改远程仓库中对应文件的内容,不需要在Heroku本地做写入操作。 - 计数变量不要存储在运行内存中,建议直接存到GitHub仓库的单独配置文件里,每次读写都通过GitHub API操作,或者搭配Heroku提供的Redis、PostgreSQL等持久化存储服务,定期将数据同步到GitHub。
内容的提问来源于stack exchange,提问作者Zea R
相关产品推荐
相关产品推荐

