接着上文,实现了软删除。这里我们实现硬删除,并且定时清理这些无效数据。

 

上一章我们实现了软删除,好处是数据更新更快。

另一条是,数据是有价值的,软删除可以让误操作的数据恢复。

 

那么我们就需要另一套接口:

  • 实现硬删除功能
  • 定期清理无效数据

 

实现硬删除

在修改models目录下的tag.go文件如下:

这里的主要改动点:

  • 增加 CleanAllTag 函数,它负责清理已经被软删除的Tag
  • 相比之前提供的版本,增加了软删除字段的处理(上一章没有给出)

 

对应的给出 article.go 文件实现如下:

这里和tag修改的部分大致相同。

 

记得,如果你没给 blog_article 表增加 deleted_on字段,现在应加上了。

ALTER TABLE blog_article ADD deleted_on INT(10) UNSIGNED NULL DEFAULT ‘0’ COMMENT ‘软删除 删除时间’ AFTER modified_by;

 

实现定时任务

这里我们使用cron库

文档:https://godoc.org/github.com/robfig/cron

可以参考的链接:

https://www.cnblogs.com/jssyjam/p/11910851.html

https://www.cnblogs.com/zhichaoma/p/12509160.html

 

安装 cron v3

github上给出的版本已经是v3了。(P.s. 看最新Release已经是v3.0.1)

go get -u github.com/robfig/cron/v3

 

编写最简单的Cron

直接在项目根目录 ginBlog 建立文件夹 cron,文件夹下建立 cron.go 文件,文件内容如下:

 

验证

执行定时任务

 

对应的查看数据库前后内容:

 

定时参数

本来想介绍下参数的…但是写的没别人好啊。

看这篇文章吧,https://www.cnblogs.com/zhichaoma/p/12509160.html

【Go】gin Blog项目(九) Cron定时任务
Tagged on:     
0 0 vote
Article Rating
订阅
提醒
0 评论
Inline Feedbacks
View all comments