> 백엔드 개발 > PHP 튜토리얼 > php + redis如何设计一个定时发布功能

php + redis如何设计一个定时发布功能

WBOY
풀어 주다: 2016-06-06 20:41:11
원래의
1433명이 탐색했습니다.

现在想要实现一个定时发布文章的功能,把文章id和发布时间放入redis中

我该怎么设计,在发布时间的时候,把文章的状态改为发布?

回复内容:

现在想要实现一个定时发布文章的功能,把文章id和发布时间放入redis中

我该怎么设计,在发布时间的时候,把文章的状态改为发布?

cron写一个定时执行脚本的命令,脚本主要实现array_shift()出文章数组的第一个,执行发送该id文章的命令,发送成功则存储shift之后的数组到redis,失败的话则添加回去。

如果是记录发布时间的话则用array_filter对时间进行过滤,默认时间是0或者其它,如果时间恒等于默认时间,则为真。然后再获取第一个文章id进行文章发布操作,成功则记录其时间,失败则不更改时间然后存储文章数组到redis中。

用 crontab,每一分钟跑一个 PHP 脚本,这个脚本负责查询是否有需要发布的文章,如果有就发布并且改变状态为已发布。这应该算是一个比较简单的思路了。

状态设置为预发布状态,查询文章时过滤掉发布时间为未来时间文章,预发布状态+发布时间 可以确定文章是已发布的,如果一定要设置发布状态值,可以在查询后判断再更新,如果一定要"定时"那就用 cron

还有一个想法是要发布的文章状态设置成已发布,然后是redis存储文章id,并且设置过期时间为发布时间戳减去当前时间戳的差值,查询文章是过滤redis中的文章id,这样文章到了发布时间就出来了,不过这样做 文章的查询需要封装

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿