一种软电话坐席状态同步方法及相关产品与流程
本技术涉及数据处理,特别是涉及一种软电话坐席状态同步方法及相关产品。
背景技术:
1、软电话是话务坐席日常业务作业专用软件,在客服呼叫中心场景中,坐席通过软电话完成日常话务作业,软电话运行过程中需要持续对接底层商用话务平台接口,实时同步坐席在线、离线或通话中等状态,保障坐席业务正常开展。
2、底层商用话务平台接口通常采用固定响应机制,但这种响应机制存在一定的缺陷:若坐席话务状态未发生变更,接口需等待10秒后才能返回响应数据。在传统轮询同步模式下持续调用接口拉取坐席状态,会产生大量无状态变更的无效请求,每一次无效调用均会触发10秒等待延迟,直接造成软电话展示的坐席状态更新滞后;同时海量重复无效请求持续占用底层话务平台接口资源,进一步加剧状态同步延迟,出现坐席状态展示与实际工况不一致,严重影响坐席使用体验。
3、如何同步坐席状态,以规避话务接口固有等待延迟和减少无效接口调用,提升坐席使用体验,是亟待解决的技术问题。
技术实现思路
1、基于上述问题,本技术提供了一种软电话坐席状态同步方法及相关产品,目的是同步坐席状态,以规避话务接口固有等待延迟和减少无效接口调用,提升坐席使用体验。
2、本技术实施例公开了如下技术方案:
3、本技术第一方面提供了一种软电话坐席状态同步方法,所述方法应用于软电话坐席状态同步系统,所述系统包括redis集群和多个应用服务器,所述方法包括:
4、接收到软电话客户端发起的签入请求的应用服务器,将所述签入请求中的坐席工号存入redis集群中的全局坐席队列;
5、当前竞争得到分布式锁的应用服务器从所述全局坐席队列中读取所述坐席工号,并按照预设均衡分发策略,将所述坐席工号分发至各应用服务器在redis集群中对应的子队列,分发完成后释放所述分布式锁;
6、各应用服务器从对应的子队列中读取对应的坐席工号,当前竞争得到工号级锁的应用服务器调用底层话务能力接口,获取对应坐席当前的话务状态并更新所述坐席的状态数据,更新完成后释放所述工号级锁;
7、接收到所述软电话客户端发起的签出请求的应用服务器,将所述坐席工号从所述全局坐席队列中移除。
8、可选地,所述分布式锁的锁键标识为全局固定键,所述分布式锁用于控制分发任务的唯一执行权,所述分布式锁的竞争方式,包括:
9、各应用服务器分别向redis集群发送原子性锁获取命令,以使所述redis集群判断各原子性锁获取命令对应的锁键标识是否已被占用并返回判断结果;
10、若所述判断结果为是,则锁键标识已被占用,对应的应用服务器未竞争到所述分布式锁;若所述判断结果为否,则锁键标识未被占用,对应的应用服务器竞争得到所述分布式锁。
11、可选地,所述工号级锁的锁键标识与坐席工号一一对应,所述工号级锁用于控制单个坐席工号状态同步的唯一执行权,所述工号级锁的竞争方式,包括:
12、各应用服务器分别向redis集群发送原子性锁获取命令,以使所述redis集群判断各原子性锁获取命令对应的锁键标识是否已被占用并返回判断结果;
13、若所述判断结果为是,则锁键标识已被占用,对应的应用服务器未竞争到所述工号级锁;若所述判断结果为否,则锁键标识未被占用,对应的应用服务器竞争得到所述工号级锁。
14、可选地,所述按照预设均衡分发策略,将所述坐席工号分发至各应用服务器在redis集群中对应的子队列,包括:
15、按照各应用服务器的预设权重或启动顺序,将所述全局坐席队列中的坐席工号依次循环分配至各应用服务器在redis集群中对应的子队列。
16、可选地,所述方法还包括:
17、记录各应用服务器按照预设时间间隔向redis集群发送的心跳信号,并记录最后心跳时间;
18、若任一应用服务器的最后心跳时间与当前时间的时间间隔超过预设时间阈值,则为故障服务器,当前竞争得到所述分布式锁的应用服务器将所述故障服务器对应的子队列中的全部未消费坐席工号,重新分配至其他处于健康状态的应用服务器对应的子队列中。
19、本技术第二方面提供了一种软电话坐席状态同步装置,该装置包括:
20、签入处理模块,用于接收到软电话客户端发起的签入请求的应用服务器,将所述签入请求中的坐席工号存入redis集群中的全局坐席队列;
21、任务分发模块,用于当前竞争得到分布式锁的应用服务器从所述全局坐席队列中读取所述坐席工号,并按照预设均衡分发策略,将所述坐席工号分发至各应用服务器在redis集群中对应的子队列,分发完成后释放所述分布式锁;
22、状态同步模块,用于各应用服务器从对应的子队列中读取对应的坐席工号,当前竞争得到工号级锁的应用服务器调用底层话务能力接口,获取对应坐席当前的话务状态并更新所述坐席的状态数据,更新完成后释放所述工号级锁;
23、签出处理模块,用于接收到所述软电话客户端发起的签出请求的应用服务器,将所述坐席工号从所述全局坐席队列中移除。
24、可选地,所述分布式锁的锁键标识为全局固定键,所述分布式锁用于控制分发任务的唯一执行权,所述分布式锁的竞争方式,包括:
25、各应用服务器分别向redis集群发送原子性锁获取命令,以使所述redis集群判断各原子性锁获取命令对应的锁键标识是否已被占用并返回判断结果;
26、若所述判断结果为是,则锁键标识已被占用,对应的应用服务器未竞争到所述分布式锁;若所述判断结果为否,则锁键标识未被占用,对应的应用服务器竞争得到所述分布式锁。
27、可选地,所述工号级锁的锁键标识与坐席工号一一对应,所述工号级锁用于控制单个坐席工号状态同步的唯一执行权,所述工号级锁的竞争方式,包括:
28、各应用服务器分别向redis集群发送原子性锁获取命令,以使所述redis集群判断各原子性锁获取命令对应的锁键标识是否已被占用并返回判断结果;
29、若所述判断结果为是,则锁键标识已被占用,对应的应用服务器未竞争到所述工号级锁;若所述判断结果为否,则锁键标识未被占用,对应的应用服务器竞争得到所述工号级锁。
30、本技术第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述程序被处理器运行时,实现如第一方面任一实现方式提供的软电话坐席状态同步方法。
31、本技术第四方面提供了一种处理器,该处理器用于运行计算机程序,所述程序运行时执行如第一方面任一实现方式提供的软电话坐席状态同步方法。
32、相较于现有技术,本技术具有以下有益效果:
33、本技术实施例提供的软电话坐席状态同步方法,所述方法应用于软电话坐席状态同步系统,所述系统包括redis集群和多个应用服务器,所述方法包括:接收到软电话客户端发起的签入请求的应用服务器,将所述签入请求中的坐席工号存入redis集群中的全局坐席队列;当前竞争得到分布式锁的应用服务器从所述全局坐席队列中读取所述坐席工号,并按照预设均衡分发策略,将所述坐席工号分发至各应用服务器在redis集群中对应的子队列,分发完成后释放所述分布式锁;各应用服务器从对应的子队列中读取对应的坐席工号,当前竞争得到工号级锁的应用服务器调用底层话务能力接口,获取对应坐席当前的话务状态并更新所述坐席的状态数据,更新完成后释放所述工号级锁;接收到所述软电话客户端发起的签出请求的应用服务器,将所述坐席工号从所述全局坐席队列中移除。
34、上述方法中,坐席签入时,应用服务器将坐席工号存入全局坐席队列,坐席工号进入全局坐席队列后由后台异步调度执行状态获取,坐席端无需等待话务接口返回即可进行后续业务操作,实现了坐席签入操作与状态同步任务的完全解耦,坐席端操作不再受话务接口高延迟特性的制约,显著改善了坐席使用体验。同时,创新搭建了全局坐席队列与服务器专属子队列的双层队列模型。全局坐席队列用于统一归集所有已签入坐席的工号,实现坐席工号的集中管理;各应用服务器对应的子队列则用于接收分配至该节点的坐席工号任务,通过该双层队列模型,能够按服务节点精准拆分分发任务,实现业务流量的均衡分流,既避免了多应用服务器无序竞争同一队列带来的锁开销和性能损耗,也为后续各服务器独立消费、互不干扰奠定了基础。在此基础上,通过多层互斥控制机制,从请求源头减少了无效接口调用:各应用服务器通过竞争分布式锁获取分发任务的唯一执行权,同一时刻仅一个应用服务器能够执行分发任务。由于分布式锁的互斥控制,从根源上避免了多个应用服务器同时从全局坐席队列读取同一坐席工号并重复分发至不同子队列的问题;各应用服务器从各自对应的子队列中独立读取工号进行状态同步,各服务器互不干扰,有效减少了锁竞争开销。坐席签出时,应用服务器将坐席工号从全局坐席队列中移除,与该坐席相关的所有状态同步任务正式终止,确保系统中不存在已下线坐席的残留任务,同时释放与该坐席关联的锁资源和队列存储资源,避免资源浪费。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com