[发明专利]一种基于redis缓存的智能重发方法、系统及计算机可读存储介质在审
申请号: | 202111518929.X | 申请日: | 2021-12-10 |
公开(公告)号: | CN114356981A | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 崔志凡;钟晨;聂仙忠;任小欣;曹佳丽;张丞鑫 | 申请(专利权)人: | 浙江慧居智能物联有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F9/50;G06F9/54 |
代理公司: | 杭州华知专利事务所(普通合伙) 33235 | 代理人: | 束晓前 |
地址: | 310000 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 redis 缓存 智能 重发 方法 系统 计算机 可读 存储 介质 | ||
本发明公开的一种基于redis缓存的智能重发方法和系统及计算机可读存储介质,方法包括:计算场景执行时间,所述场景包括一个或多个设备执行队列,每个场景包含在项目中,每个项目包含一个或多个场景;在执行场景时将场景内的设备序列号和场景计算时间存入redis缓存,锁定场景项目的id,启动检测线程睡眠场景执行时间,检测线程睡眠结束后会根据场景设备依次查询缓存,若缓存还在则表示该设备执行失败,计入二轮指令发送名单;根据名单中设备下发第二轮指令,同时解除当前场景的项目id锁定。本发明可以降低服务器负担,提高指令的执行效率和设备控制的成功率。
技术领域
本发明涉及服务器缓存技术领域,更具体的,涉及一种基于redis缓存的智能重发方法、系统及计算机可读存储介质。
背景技术
随着计算机技术和芯片技术的飞速发展,智能家居在国内的发展也迅速起来,服务器是实现智能家居非常重要的一环。服务器负责跟智能设备进行通信,同步或者下发指令以达到智能家居的目的。服务器的编写和算法决定了整个系统的功能和效率。
现有的智能家居服务器下发指令时往往只执行一次,简单直白,但也存在一定的问题。当遇到网络波动,设备通信不良好或者设备数量较多的时候指令可能无法正常执行。也就是我们俗称的“丢包”。若多个设备中只有个别设备执行失败,只能重新执行场景控制所有设备执行,效率低的同时还增加了服务器的负担。这些不可预知的问题可能导致用户使用时体验变差。
现有的服务器指令下发方式,服务器负担大,执行效率低,用户体验差,因此亟需一种基于redis缓存的智能重发方法。
发明内容
鉴于上述问题,本发明的目的是提供一种基于redis缓存的智能重发方法方法、系统及计算机可读存储介质,能够降低服务器的负担,提高远端设备的控制成功率。
本发明第一方面提供了一种基于redis缓存的智能重发方法,包括以下步骤:
计算场景执行时间,所述场景包括一个或多个设备执行队列,每个场景包含在项目中,每个项目包含一个或多个场景;
在场景执行时将场景内的设备序列号和场景计算时间存入redis缓存,锁定场景项目的id,启动检测线程睡眠场景执行时间,检测线程睡眠结束后会根据场景设备依次查询缓存,若缓存还在则表示该设备执行失败,计入二轮指令发送名单;
根据名单中设备下发第二轮指令,同时解除当前场景所在项目的id锁定。
本方案中,所述计算场景执行时间具体步骤为:
将执行场景内的设备根据各自的延迟时间分组,根据延时的高低从低到高排列;
设置场景执行时间的初始值和每个设备执行时间,对设备列表进行循环计算。
本方案中,对设备列表进行循环计算具体为:
若场景执行时间小于该组延迟时间时表示着当延时时间到时,之前的设备已经全部执行完,新的场景执行时间为:
新的场景执行时间=当前延时时间+该组设备总数×每个设备执行时间
若场景执行时间大于改组延迟时间,表示延时时间到时,还有正在执行的设备该组设备需要等之前的设备执行完才能执行,则新的场景执行时间为:
新的场景执行时间=旧执行时间+该组设备总数×每个设备执行时间。
本方案中,当场景的项目id锁定后,若还有该项目的场景执行指令,则将指令暂存避免多个场景同时执行互相影响。
本方案中,在启动检测线程睡眠场景执行时间后释放当前线程避免用户卡顿。
本方案中,当服务器收到设备回包时会查询缓存并删除该缓存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江慧居智能物联有限公司,未经浙江慧居智能物联有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111518929.X/2.html,转载请声明来源钻瓜专利网。