[发明专利]一种定时器事件处理方法、数据库及定时器在审
| 申请号: | 201810632590.8 | 申请日: | 2018-06-19 |
| 公开(公告)号: | CN108958948A | 公开(公告)日: | 2018-12-07 |
| 发明(设计)人: | 汪利福;王泽 | 申请(专利权)人: | 北京云枢网络科技有限公司 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52 |
| 代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 徐彦圣 |
| 地址: | 100000 北京市朝*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 定时器 数据库 触发事件 原子操作 存储触发事件 定时器发送 定时器竞争 定时器事件 时间处理 数据返回 同一时刻 性能损耗 加锁 解锁 自旋 权限 | ||
本发明实施例提供一种定时器时间处理方法、数据库及定时器。该方法包括:接收各定时器发送的lua脚本,所述lua脚本中包括所述定时器竞争得到的触发事件的请求;根据所述lua脚本执行原子操作,依次将所述触发事件对应的执行数据返回至对应的定时器。所述数据库用于执行所述方法。本发明实施例通过数据库Redis存储触发事件,使得定时器能够进行自旋操作,并且根据lua脚本执行原子操作,同一时刻只允许一个定时器具备执行权限,避免加锁、解锁造成的性能损耗。
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种定时器时间处理方法、数据库及定时器。
背景技术
定时器是一个多任务定时提醒的软件,它全面支持WINDOWS9X/ME/NT/2K/XP按时执行程序、播放声音、关机、待机、拨号、断开连接、关闭显示等操作,因此在大型应用系统中的使用非常广泛。
现有技术中经常使用的技术为分布式锁实现定时功能,使用分布式锁实现定时器是分布式系统中定时器的主要实现方式,当触发时机到来时,集群中的多个定时器必须通过加锁、解锁的方式首先获得执行权限,再由获得权限的某个定时器触发操作。对于触发间隔为秒级的应用系统来说,加锁、解锁频繁触发对系统的性能损耗非常大,并且非常容易造成死锁,导致整个系统瘫痪。
发明内容
有鉴于此,本发明实施例的目的在于提供一种定时器时间处理方法、数据库及定时器,以解决上述技术问题。
第一方面,本发明实施例提供了一种定时器时间处理方法,包括:
接收各定时器发送的lua脚本,所述lua脚本中包括所述定时器竞争得到的触发事件的请求;
根据所述lua脚本执行原子操作,依次将所述触发事件对应的执行数据返回至对应的所述定时器。
进一步地,所述方法,还包括:
根据所述定时器的触发时间生成对应的多个事件列表,每一所述事件列表中存储所述触发时间对应的所述触发事件信息,每一所述触发事件信息包括触发事件ID和执行数据。
进一步地,在依次将所述触发事件对应的执行数据返回至对应的所述定时器之后,所述方法,还包括:
将所述触发事件的状态标记为已执行。
第二方面,本发明实施例提供了一种定时器事件处理方法,包括:
获取数据库Redis中存储的多个事件列表,每一所述事件列表中包括多个触发事件;
若根据触发时间判断获知触发时机到达,则启动竞争所述触发时间对应的所述事件列表中的所述触发事件的自旋操作;
将竞争得到的所述触发事件通过lua脚本发送至所述数据库Redis。
进一步地,所述方法,还包括:
接收所述数据库Redis返回的执行数据,并将所述执行数据回调至对应的业务模块。
第三方面,本发明实施例提供了一种数据库,包括:
接收模块,用于接收各定时器发送的lua脚本,所述lua脚本中包括所述定时器竞争得到的触发事件的请求;
返回模块,用于根据所述lua脚本执行原子操作,依次将所述触发事件对应的执行数据返回至对应的所述定时器。
进一步地,所述数据库,还包括:
列表生成模块,用于根据所述定时器的触发时间生成对应的多个事件列表,每一所述事件列表中存储所述触发时间对应的所述触发事件信息,每一所述触发事件信息包括触发事件ID和执行数据。
进一步地,所述数据库,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京云枢网络科技有限公司,未经北京云枢网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810632590.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种大数据一体机及其使用方法
- 下一篇:应用程序的调用方法及系统





