每日定时推送自己的更文统计
前言
实践
总体设计
-
- 在一个定时服务中固定每天执行统计任务
-
- 先拉取批量拉取文章并统计文章数量
-
- 将统计数据定时推送至飞书机器人
创建飞书机器人
先在飞书中,创建一个属于自己的群。我创建了一个 「日常记录群」,主要用于平时会紧急需要的内容复制黏贴和一些日常的 TODO 计划。再给群添加一个自定义机器人叫做「更文统计」
更文统计
更文统计主要涉及接口:
- 批量获取文章列表:api.juejin.cn/content_api…
- 获取文章详细内容:api.juejin.cn/content_api… 获取文章列表然后再获取没篇文章的详细内容,再根据文章的内容匹配 title 然后统计数量
定时任务
后端主要使用的是 Go 语言开发,要完成定时任务主要使用第三方包 cron。
github.com/robfig/cron/v3
cron 库和 与Linux 中crontab
命令相似,支持用 5 个空格分隔的域来表示时间。
* * * * *
Minutes
:分钟,取值范围[0-59]
,支持特殊字符* / , -
;Hours
:小时,取值范围[0-23]
,支持特殊字符* / , -
;Day of month
:每月的第几天,取值范围[1-31]
,支持特殊字符* / , - ?
;Month
:月,取值范围[1-12]
或者使用月份名字缩写[JAN-DEC]
,支持特殊字符* / , -
;Day of week
:周历,取值范围[0-6]
或名字缩写[JUN-SAT]
,支持特殊字符* / , - ?
。
定时任务实现
func main(){
fmt.Println("-----定时任务-----")
// 定时任务
c := cron.New(cron.WithSeconds())
c.AddFunc("* 8 * * *", func() {
fmt.Println("开始指定定时任务")
st.DealData()
})
c.Start()
// 阻塞 ,或使用其他延迟时间函数
select {}
}
AddFunc()
方法向管理器中添加定时任务.参数1 表示实践规则,参数2是一个无参的函数。设置每天准时8点更新统计的数据,然后推送到飞书中。测试成功后就可以部署到自己的服务器上。
参考资料:
转载自:https://juejin.cn/post/7130296803928309773