给 WordPress 添加一个 RSS 友链阅读器

3989°C 06-09-2024 notbyai
最近更新于:2024-09-07 19:04:18

文章摘要moonshot-v1-8k

Standby API Responsing..

前情提要

前不久在 jeffer 的一篇文章看到写了一个wp的rss阅读插件,有点小心动。其实早在去年就和 thyuu 交流过这个wp的友链rss功能,当时老哥很快搞定了,还分享了实现代码。当时对rss不是很感冒,基本就是在友链页面翻翻经常逛的那几个,想着也不是每个人都有这个就感觉有点没必要,而且可以直接去看友链的公共聚合之类的,就没弄。直到现在,用了就感觉,欸 好像还挺方便的。

实现

需求是这样的:在wp原生链接基础上,读取不同分类链接中的 link_rss 数据然后解析为自定义 stdClass 返回并储存到 wp_options 表中(方便后期排序等操作),通过不同的链接分类,可以读取不同分类下的rss数据集,通过设置链接显示状态(visible)来限制已订阅链接。

基本理念就是读取和解析xml文件,不过这大千世界,rss种类也很多,面对多种数据结构需要手动去兼容返回。刚开始直接就问了kimi给了一套方案,用php自带的simplexml扩展来解析数据,试了 能用,不过需要自己手动兼容rss类型,就相对比较麻烦。后来想起 thyuu 之前用的wp原生功能 fetch_feed 能自动解析,效果感觉比 curl 好使..

后面尝试了两种不同输出的效果,虽然大差不差但还是wp原生的用起来更稳定(貌似),后面把数据缓存到 wp_option 表了,并挂载更新到了原生链接操作hook(增删改均可同步更新对应分类),添加 wp_schedule 定时清理所有分类缓存任务。

效果

综合效果还是不错的,如图。

一些请求被分割,一些请求失败(底部)

问题

主要有两个问题,一个是rss 抓取时间过长,另一个是抓取成功率问题。

  • 抓取时效性
  • 抓取成功率

关于 rss 抓取时效方面,从拉数据到缓存50+的链接需要反应大概2分钟左右。我问了kimi很多解决方案,什么异步、分块、多线程等等,效果都不太理想。

抓取成功率方面,我试了下当链接超过一定量时就会出现抓取失败的情况,有些报错是数据没完全接收。针对这一情况,首先尝试了 curl_multi 多线程处理,基本没效果。然后尝试将rss链接集分块请求处理,效果不理想。

综上所述,目前还是用的默认 fetch_feed 做的分块请求处理。有没有大佬来指点一二,这种数据应该怎么处理以性能最大化?

闲聊

tmd我前几天手贱给笔记本换硅脂,中毒了去看什么硅脂视频,tmd就是一坨大便艹。换完直接屏幕闪屏,一旦请求gpu上来就开始闪,以为gpu核心出问题了,换核显结果一样。。网上搜了一圈发现可能是显示器线材问题,于是外接显示器最后发现是笔记本显示器的问题。。。这tmd百思不得其解

最要命的是,换了硅脂,笔记本发热降频???我tmd合着搁着绕圈子呢,何况之前根本不降频,温度比这更高高负载时间也比这更长,我干,到底什么原因。我现在就怕这核心被我搞了,但按理来说我拆装非常小心所以不应该啊,哎日了狗,黑神话也搁置了,全怪自己手贱啊,非要去换sb硅脂,这就叫没事找事!!


评论留言

avatar
「 涂鸦画板 」 关闭表情 bilibili 小电视
h0h1h2h3h4h5h6h7h8h9h10h11h12h13h14h15h16h17h18h19h20h21h22h23h24h25h26h27h28h29h30h31h32h33h34h35h36h37h38h39h40h41h42h43h44h45h46h47h48h49h50h51h52h53h54h55h56h57h58h59h60h61h62h63
36 条评论
user_avatar
匿名者 Edge / Windows 10
2026-03-07 回复

4

user_avatar
zeruns Chrome / Windows 10
2025-02-08 回复

好像还不错

user_avatar
紫慕 Chrome / Android 14
2024-10-31 回复

1咱俩换硅脂的时间挺同步的,我这换下来感觉没多大变化,风扇声音小了不少。硅脂涂的也是一塌糊涂。

user_avatar
WhatsApp 数据 Chrome / Windows 10
2024-10-02 回复

企业可以借助对 WhatsApp 工具的了解来识别沟通瓶颈,从而增强客户服务流程和响应时间。
更多信息
WhatsApp 数据
https://wsdatab.com

user_avatar
小元 Edge / Windows 10
2024-09-28 回复

好棒!!!!!但是我现在发现一个更好用的!follow真的不错还是免费的,可惜是内测版,白嫖到一个号等我用用来反馈哈哈哈哈哈哈哈哈哈https://app.follow.is/feeds/all/pending?view=0

    user_avatar
    2broear adminChrome / Android 14
    2024-09-28 回复
    @小元 ,

    我知道这个innei开发的,算是产品级应用了,还在内测呢

    user_avatar
    小元 Edge / Windows 10
    2024-09-28 回复
    @2broear ,

    我现在有120的follow币了,100可以免费换一个邀请码,但是我今天刚注册,不能邀请新用户哈哈哈哈哈哈哈哈哈。
    等我过几天签到多了,如果你需要我生成一个给你0

    user_avatar
    2broear adminChrome / Android 14
    2024-09-28 回复
    @小元 ,

    哈哈多谢啦~63

user_avatar
火喵酱 Chrome / Windows 10
2024-09-27 回复

你的评论区才发现竟然是用的Valine!数据存在哪里leancloud么?

user_avatar
火喵酱 Chrome / Windows 10
2024-09-27 回复

curl多线程还是有效果的,可能我自己友链不多感觉不到慢。也许你可以一批一批的抓取,最后再一起处理,就是会更长时间,可能成功率会高一些。6

    user_avatar
    2broear adminChrome / Android 14
    2024-09-27 回复
    @火喵酱 ,

    按理是这样,目前用的是定期访问api加失败重试的机制,基本不存在抓取失败问题了~(不过抓取内容还是用的wp的fetchfeed,估计也内置了多线程

user_avatar
Vinking Chrome / macOS 10.15
2024-09-25 回复

之前我也是换完闪屏,然后拍了几下就好了,到现在也没出问题1

user_avatar
Jeffer.Z Chrome / Android 14
2024-09-14 回复

我那个插件不少毛病。不想弄了又,一个大坑挖出来,1,功能越多坑越大。我当时应该把功能设计简单点。遇码不行,就上cluade。

user_avatar
木木困玉光 Chrome / Windows 10
2024-09-10 回复

8硅脂涂多涂少都不行的
rss 抓取WP不知道是怎么运作的,但你是看的时候才抓取吧,看下能不能设个定时挂后台自己抓吗,比如凌晨的时候,要看的时候都缓存好了

    user_avatar
    2broear adminEdge / Windows 10
    2024-09-10 回复
    @木木困玉光 ,

    那玩意,抹的相变片,我都不知道是不是静电击穿了显示器里的元器件,现在确定是显示器问题,但能用,就不想去修。就很烦。(rss那个主要存在抓取一些抓取失败的情况,定时那个倒是做了个定时任务访问api更新

user_avatar
万有引力 Chrome / Windows 10
2024-09-10 回复

系统不报警不换硅脂。

    user_avatar
    2broear adminEdge / Windows 10
    2024-09-10 回复
    @万有引力 ,

    这台机子散热其实规格很高,系统一般还是不会报错,手贱了

user_avatar
obaby Chrome / macOS 10.15
2024-09-07 回复

为啥要换硅脂呢?
这个东西我是起个服务去抓取,扔到 json 里,wp 就纯粹加载文件来展示。

    user_avatar
    2broear adminEdge / Windows 10
    2024-09-07 回复
    @obaby ,

    这台电脑买的二手的,18年的机子,机主好像没拆过。本以为换了硅脂散热能更上一层楼,结果。。本来什么都好好的,这不 手贱惹得锅!(看来目前这方案没对,日后再说

user_avatar
风记星辰 Edge / Windows 10
2024-09-07 回复

评论 [724] 0

user_avatar
满心 Chrome / Windows 10
2024-09-07 回复

用个第三方工具,加载获取rss存json,然后再加载到博客,这个可以再缓存

user_avatar
阿和 Chrome / Windows 7
2024-09-07 回复

是给自己的站安一个RSS订阅器吗?