现在想要实现一个定时发布文章的功能,把文章id和发布时间放入redis中
我该怎么设计,在发布时间的时候,把文章的状态改为发布?
回复内容:
现在想要实现一个定时发布文章的功能,把文章id和发布时间放入redis中
我该怎么设计,在发布时间的时候,把文章的状态改为发布?
cron写一个定时执行脚本的命令,脚本主要实现array_shift()出文章数组的第一个,执行发送该id文章的命令,发送成功则存储shift之后的数组到redis,失败的话则添加回去。
立即学习“PHP免费学习笔记(深入)”;
ShopWind网店系统是国内最专业的网店程序之一,采用ASP语言设计开发,速度快、性能好、安全性高。ShopWind网店购物系统提供性化的后台管理界面,标准的网上商店管理模式和强大的网店软件后台管理功能。ShopWind网店系统提供了灵活强大的模板机制,内置多套免费精美模板,同时可在后台任意更换,让您即刻快速建立不同的网店外观。同时您可以对网模板自定义设计,建立个性化网店形象。ShopWind网
如果是记录发布时间的话则用array_filter对时间进行过滤,默认时间是0或者其它,如果时间恒等于默认时间,则为真。然后再获取第一个文章id进行文章发布操作,成功则记录其时间,失败则不更改时间然后存储文章数组到redis中。
用 crontab,每一分钟跑一个 PHP 脚本,这个脚本负责查询是否有需要发布的文章,如果有就发布并且改变状态为已发布。这应该算是一个比较简单的思路了。
状态设置为预发布状态,查询文章时过滤掉发布时间为未来时间文章,预发布状态+发布时间 可以确定文章是已发布的,如果一定要设置发布状态值,可以在查询后判断再更新,如果一定要"定时"那就用 cron
还有一个想法是要发布的文章状态设置成已发布,然后是redis存储文章id,并且设置过期时间为发布时间戳减去当前时间戳的差值,查询文章是过滤redis中的文章id,这样文章到了发布时间就出来了,不过这样做 文章的查询需要封装










