定时抓取招聘信息推送到飞书机器人-v1.1.0
在 版本v1.0.0 实现中发现一些问题:
- 发送给飞书的招聘列表
20
条,且格式很难抓住重点,阅读十分不友好 - 推送策略不及时、重复的问题,每天定时推送
20
条,难免会有重复的,因为招聘网站更新的职位可能没多少。每天推送一次,及时性就很差
为了解决上面的问题,就有了 v1.1.0
版本:
- 每隔
5分钟
执行一次,只推送之前5分钟内
创建的招聘信息。 - 飞书推送消息的格式改为:
消息卡片
,且每条信息单独发送一条消息。
实现
- 定时执行策略实际使用
4分钟
执行一次,而推送消息范围是5分钟
内的,v2ex
的酷工作默认查询排序是按照最后回复时间进行排序的,所以排在前面的是有最新回复内容的,但是对于招聘信息,目前只关注发送的时间节点就行了,所以通过在详细页面获取发布时间,然后对比执行时间与发布时间的差值是否在5分钟内
,为了防止执行启动期间的数据丢失,所以使用4分钟
执行一次,而非5分钟
执行一次。 - 实现中发现消息格式比较复杂,假如使用
struct
定义太麻烦,也不够灵活,所以引入了模版,通过模版文件构造飞书消息。后续其他需要复杂格式的数据体也都容易构造了。(需要注意飞书的消息格式内容需要进行转义或者去掉一些字符,不然会导致格式错误推送消息失败的问题。)
- 另外为了防止多个条目同一批次发送时,不容易分辨,所以添加了发布时间以及序号在消息中。在时间处理这块需要注意的是
Github Action
定时执行的时区问题,v2ex
抓取的数据条目中的日期是东八区的时间,所以对比的时候要先进行同时区转换再进行比较。