练习(time.tick定时器监控数据库)
设立个定时器,监控数据库里fb_state(发布状态),并将数据库中一条记录的开始时间与截止时间和当前时间进行比对。若当前时间在开始时间与结束时间之间,则将发布状态设为1,否则为0.
同时,将此段代码放到router里的init函数里,这样每次运行程序时都会启动此方法,并且直至程序中断才停止监控。
(使用的是Beego框架)


//监控已发布的contents
func MonitorValidtimes() {
log.Info("后台状态监控已开启")
var PostFb, PreFb []orm.Params
o := orm.NewOrm()
T := time.Tick(time.Second)
for now := range T {
o.Raw("SELECT id,end_time FROM dt_content WHERE fb_state=?", 1).Values(&PostFb)
o.Raw("SELECT id,start_time,end_time FROM dt_content WHERE fb_state=?", 0).Values(&PreFb)
i, j := 0, 0
//监控已发布contents
for range PostFb {
end_time := PostFb[i]["end_time"]
id := PostFb[i]["id"]
et, _ := strconv.ParseInt(end_time.(string), 10, 64)
idi, _ := strconv.ParseInt(id.(string), 10, 64)
if et <= now.Unix() {
o.Raw("Update dt_content SET fb_state=0 WHERE id=?", idi).Exec()
}
i++
}
//监控未发布contents
for range PreFb {
start_time := PreFb[j]["start_time"]
end_time2 := PreFb[j]["end_time"]
id2 := PreFb[j]["id"]
st, _ := strconv.ParseInt(start_time.(string), 10, 64)
et2, _ := strconv.ParseInt(end_time2.(string), 10, 64)
id2i, _ := strconv.ParseInt(id2.(string), 10, 64)
if st <= now.Unix() && now.Unix() < et2 {
o.Raw("Update dt_content SET fb_state=1 WHERE id=?", id2i).Exec()
}
j++
}
}
}
练习(time.tick定时器监控数据库)的更多相关文章
- 分布式监控系统Zabbix3.2监控数据库的连接数
在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置 ...
- Spring Boot + Druid 监控数据库(三)
Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助. 2) 替换DBC ...
- PostgreSQL 监控数据库活动
监控数据库活动 1. 标准Unix 工具 [root@mysqlhq ~]# ps auxww | grep ^postgrespostgres 12106 0.0 0.0 340060 15064 ...
- spring配置druid连接池和监控数据库访问性能
Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...
- 监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)
原文:监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1) 如果你要同步不同数据库之间的数据,首先会想到的是数据库复制技术,但如果让你同步数据库的结构,你会想到什么呢? 下面 ...
- Canal的简单使用(监控数据库数据的变化)
原文:https://www.cnblogs.com/java-spring/p/8930740.html canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据,用于实际工作中,比 ...
- 监控数据库SqlServer
监控数据库的连接数select COUNT( * ) from master.dbo.sysprocesses select COUNT( * ) from master.dbo.sysprocess ...
- 监控数据库运行 - MS SQL 日常维护管理常用脚本(二)
查看数据库登录名信息 use mastergoSELECT name AS LoginName , dbname AS DefaultDB , createdate AS CreateDate, up ...
- LoadRunner监控数据库服务器
使用LoadRunner的数据库服务器资源监控器,可以在场景或会话步骤运行期间监控DB2.Oracle.SQL Server或Sybase数据库的资源使用率.在场景或会话步骤运行期间,使用这些监控器可 ...
随机推荐
- css 实现三角形
#demo1 { width: 0; height: 0; border-top: 100px solid rgba(255, 0, 0, 1); border-bottom: 50px solid ...
- Java安全之Filter权限绕过
Java安全之Filter权限绕过 0x00 前言 在一些需要挖掘一些无条件RCE中,大部分类似于一些系统大部分地方都做了权限控制的,而这时候想要利用权限绕过就显得格外重要.在此来学习一波权限绕过的思 ...
- 最全的cURL命令使用
cURL是什么 curl是Linux命令行工具,可以使用任何可支持的协议(如HTTP.FTP.IMAP.POP3.SCP.SFTP.SMTP.TFTP.TELNET.LDAP或FILE)在服务器之间传 ...
- [DB] Zookeeper
介绍 相当于"数据库",类似linux.hdfs的属性文件结构 分布式协调框架,实现HA(High Availability) 分布式锁管理框架 保证数据在zookeeper集群之 ...
- [bug]mysql: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
原因: 时区设置有误 解决: 在mysql中修改时区设置: 或 在JDBC代码中增加时区设置: Connection c = DriverManager.getConnection("jdb ...
- 安装 Centos 7.x
学习 python 至今,一直是在 linux 上操作,感觉还是 linux 对 python 的支持更加友好,默认安装了 python 的版本 2 和 3 .为了打造更好的 python 开发环境, ...
- unrar命令解压rar unrar e XXX.rar (验证通过20200511)
unrar命令解压rar 一个从入门到放弃再到改行的工程师 2018-05-02 17:53:04 3916 收藏展开压缩tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成 ...
- CentOS Linux搭建独立SVN Server全套流程(修改svn仓库地址、服务启动等)
CentOS Linux搭建独立SVN Server全套流程(修改svn仓库地址.服务启动等) 原 一事能狂便少年 发布于 2016/12/27 11:16 字数 1113 阅读 1.3K 收藏 0 ...
- 002.Ansible之Inventory文件
一 简介 在使用Ansible来批量管理主机的时候,通常我们需要先定义要管理哪些主机或者主机组,而这个用于管理主机与主机组的文件就叫做Inventory,也叫主机清单.该文件默认位于/etc/ansi ...
- git cherry-pick(不同分支的提交合并)
git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作.例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并, ...