把代码仓库当做数据库,github action持久化存储新思路

背景

我想做一个rss订阅机器人,通过一个定时任务定期将我关注的内容推送到我的 Tailchat 群组。但是我又不想自己去单独搭建一个服务器来部署,因为功能很小、单独部署的成本会被放大,也不容易被其他人很简单的使用。而且长期维护的成本也是比较高的,希望能处于无人值守的运行模式

那么整理一下需求:

  • 定时任务
  • 简单部署
  • 不需要运维

可以说是非常理想了,那么有这样成熟的解决方案么?答案是有的。那就是github action

Github action 可以满足我的所有需求,只需要一个简单的定时任务即可实现我的三个需求。唯一的难点在于数据库,也就是持久化存储。

众所周知,rss机器人的原理就是定时请求rss订阅地址,将返回的内容结构化以后与之前存储的数据进行比较,将更新的信息提取出来发送到外部服务。那么为了能够比较差异,一个持久化的数据库是必不可少的。那么github action可以实现数据库么?答案是可以的,我只需要将数据存储在代码仓库中,每次执行action之前将数据取出,然后在action执行完毕之后将数据存回仓库,那么一个用于低频读写的文件数据库就实现了。

理论存在,实践开始!

开始造轮子

在github上搜索了一圈没有发现有现成的轮子,因此就开始自己造一个。

核心流程如下:

准备数据流程
  • 通过git worktree创建一个独立的工作区
  • 指定工作区的分支为一个独立分支用于存储数据
  • 如果该分支之前不存在,跳过准备过程
  • 如果分支已存在,拉取分支代码,将存储分支的指定目录文件复制到主工作空间的指定目录文件
修改数据
  • 在后续的action中执行脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值