说明:
(1)本篇博客内容:开发定时发布文章的逻辑;
目录
四:编写定时发布任务,所需的Service层和Dao层逻辑;
1.1 在【article】文章服务中,创建ArticleMapperCustom这个mapper接口:定义了一个修改文章发布状态的方法;
1.2 在【article】文章服务中,创建ArticleMapperCustom.xml:去编写修改文章发布状态的方法的SQL实现;
2.1 在【article】文章服务中的ArticleService接口中:定义了一个修改文章发布状态的方法;
2.2 在【article】文章服务中的ArticleServiceImpl实现类中:去实现修改文章发布状态的方法;
五:使用Spring的定时任务技术,去实现定时发布文章;(重点)
七:本篇博客需要改正的一个点:每隔3秒就要全局扫描一遍article表,效率是很低的;(后面会通过MQ来做优化)
一:发表文章时,可以定时发布;
二:定时任务技术,简介;
(1)在【SSM开发书评网27:Spring-Task定时任务,来实现【更新评分、评价人数】的功能;(其中,包括Cron表达式,@Scheduled任务调度注解)】中,我们第一次介绍了Spring的定时任务;务必去参考一下;
(2.1)Cron表达式生成器:【在线Cron表达式生成器】,通过这个在线工具,可以帮我们生成Cron表达式;
(2.2)然后,Spring提供的@Scheduled()中,是不支持年的;所以,我们使用这个Cron表达式生成器生成Cron表达式后,记得要去除最后一位年;
三:本项目,定时发布的处理逻辑;
即其逻辑是:
● 我们定时发布文章时,和正常发布文章一样;文章图片会上传到阿里OSS,文章内容也会写到article表中;
● 只是,该文章在article中的那条记录中;is_apponit文章发布状态会是1(定时发布),publish_time文章预发布时间会是我们设置的时间;
● 因为文章的is_apponit文章发布状态是1,所以在前台显示所有文章的地方,这篇文章不会被查出来;
● 当到了定时发布的时间时,我们就去修改is_apponit为0(即时发布);这样一来,在前台显示所有文章的地方,这篇文章就会被查出来,也就相当于这篇文章发布了;(感觉,CSDN这儿的处理逻辑,也差不多是这样的)