一种用于远程集中计量的任务调度装置及调度方法与流程

文档序号:11133734阅读:1071来源:国知局
一种用于远程集中计量的任务调度装置及调度方法与制造工艺

本发明涉及远程集中计量系统,具体涉及一种自动分配各秤点客户端的计量任务到远端的坐席客户端上统一集中处理的用于远程集中计量的任务调度装置及调度方法。



背景技术:

现有计量任务分配技术基于配置在tomcat服务器上的权限系统(权限数据保存在mysql数据库),权限系统定义了消息服务器Ipush的访问权限,秤点发送任务数据消息到消息服务器,Delphi编写的任务服务器监听任务消息,然后动态分配任务(坐席数据和任务数据保存在oracle数据库),最后通过消息服务器发送任务消息到坐席机程序上。

现有实现方法的主要问题有:部署的任务服务器依赖的基础服务太多,手工配置也很复杂,每次出现问题时,仅仅查找到故障原因就需花好长时间,且依赖的消息服务器也不稳定,为了保证程序正常运行,各服务器必须定时重启,导致此时的计量任务丢失。



技术实现要素:

为解决上述问题,本发明提供一种架构简单,任务调度效果高的用于远程集中计量的任务调度装置及其调度方法。

本发明的技术方案是:一种用于远程集中计量的任务调度装置,包括:

秤点客户端:向秤点监听服务器发送计量任务;

秤点监听服务器:接收秤点客户端发送来的计量任务后,通过redis频道消息触发分发任务服务器,并向秤点客户端返回对应消息id;

坐席监听服务器:接收分发任务服务器发送来的计量任务,通知坐席客户端;接收坐席客户端发送来的计量任务完成命令,通过redis频道消息通知秤点监听服务器,由秤点监听服务器通知秤点客户端;

坐席客户端:接收坐席监听服务器发送来的计量任务,完成计量任务后,发送计量任务完成命令给坐席监听服务器,坐席监听服务器向坐席客户端返回对应消息id;

分发任务服务器:被秤点监听服务器发送来的计量任务触发后,查找下一个空闲坐席客户端,然后分配计量任务到对应的坐席客户端的每坐席任务状态redis列表下,并通过redis频道消息通知坐席监听服务器;

所述秤点监听服务器、坐席监听服务器、分发任务服务器均采用nodejs运行库+redis数据库构架。

进一步地,秤点客户端通过socket与秤点监听服务器连接。

进一步地,坐席客户端通过socket与坐席监听服务器连接。

进一步地,坐席监听服务器与秤点监听服务器之间设置传递消息的消息投递服务器,消息投递服务器采用nodejs运行库+redis数据库构架。

一种用于远程集中计量的任务调度装置的调度方法包括以下步骤:

(1)秤点客户端向秤点监听服务器发送计量任务;

(2)秤点监听服务器接收秤点客户端发送来的计量任务后,通过redis频道消息触发分发任务服务器,并向秤点客户端返回对应消息id,若秤点客户端未收到对应消息id,则返回步骤(1),否则执行步骤(3);

(3)分发任务服务器被秤点监听服务器发送来的计量任务触发后,查找下一个空闲坐席客户端,然后分配计量任务到对应的坐席客户端的每坐席任务状态redis列表下,并通过redis频道消息通知坐席监听服务器;

(4)坐席监听服务器接收分发任务服务器发送来的计量任务,通知坐席客户端;

(5)坐席客户端接收坐席监听服务器发送来的计量任务,完成计量任务,然后发送计量任务完成命令给坐席监听服务器;

(6)坐席监听服务器接收坐席客户端发送来的计量任务完成命令,并向坐席客户端返回对应消息id,若坐席客户端未接收到对应消息id,则返回步骤(5),否则执行步骤(7);

(7)坐席监听服务器通过redis频道消息通知秤点监听服务器,由秤点监听服务器通知秤点客户端。

进一步地,所述秤点监听服务器、坐席监听服务器、分发任务服务器均采用nodejs运行库+redis数据库构架。

进一步地,步骤(6)中坐席监听服务器与秤点监听服务器之间通过消息投递服务器传递消息,消息投递服务器采用nodejs运行库+redis数据库构架。

进一步地,分发任务服务器包括redis秤点任务堆栈列表、活动坐席redis列表、每坐席任务状态redis列表。

进一步地,步骤(3)中分发任务服务器分发任务规则包括:

(a)最早的计量任务优先分配原则;

(b)按坐席客户端次序分配计量任务,当某个坐席客户端忙时,跳过该坐席客户端继续分配;

(c)坐席客户端定义只关注某几个秤点客户端,分发任务服务器只分配对应秤点客户端的计量任务到该坐席客户端;

(d)计量任务被坐席客户端退回到任务队列后,优先将计量任务安排给该坐席客户端。

本发明提供的用于远程集中计量的任务调度装置,采用nodejs运行库+redis数据库构架,构架先进,使整个计量任务分配的计算程序在计算效率上达到最大优化,响应速度快,在响应高并发计量任务时,各个服务器表现也非常好,运行稳定;且安装该构架后,各个服务器程序即可直接运行,不需其他配置,实施简单。另外各个服务器设计合理,兼容性强,支持秤点客户端或坐席客户端发送多种格式的计量任务格式,可直接作为其他需要任务调度的业务任务调度服务器。本方案的调度方法任务分配算法合理,使每个坐席客户端能平均分配到计量任务。

附图说明

图1是本发明具体实施例事件流示意图。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

如图1所示,本发明提供的用于远程集中计量的任务调度装置,包括秤点客户端、秤点监听服务器、分发任务服务器、消息投递服务器、坐席监听服务器和坐席客户端。

秤点客户端:向秤点监听服务器发送计量任务。

秤点监听服务器:接收秤点客户端发送来的计量任务后,通过redis频道消息触发分发任务服务器,并向秤点客户端返回对应消息id。

坐席监听服务器:接收分发任务服务器发送来的计量任务,通知坐席客户端;接收坐席客户端发送来的计量任务完成命令,通过redis频道消息通知秤点监听服务器,由秤点监听服务器通知秤点客户端。

坐席客户端:接收坐席监听服务器发送来的计量任务,完成计量任务后,发送计量任务完成命令给坐席监听服务器,坐席监听服务器向坐席客户端返回对应消息id。

分发任务服务器:被秤点监听服务器发送来的计量任务触发后,查找下一个空闲坐席客户端,然后分配计量任务到对应的坐席客户端的每坐席任务状态redis列表下,并通过redis频道消息通知坐席监听服务器。

消息投递服务器:设置在坐席监听服务器与秤点监听服务器之间,用于坐席监听服务器向秤点监听服务器传递消息。

秤点监听服务器、坐席监听服务器、分发任务服务器、消息投递服务器均采用nodejs运行库+redis数据库构架。其中nodejs运行库内采用socket.io实现秤点监听服务器与秤点客户端之间、坐席监听服务器与坐席客户端之间的实时通信及自定义事件通知,即秤点客户端通过socket与秤点监听服务器连接,坐席客户端通过socket与坐席监听服务器连接。各个服务器采用redis数据库在内存里保存计量任务数据及消息机制在各个服务器间传递消息,服务器间通过访问相同的redis和订阅对应redis消息频道及发送频道消息触发下一流程工作。

本发明提供的用于远程集中计量的任务调度装置的调度方法,包括以下步骤:

(1)秤点客户端向秤点监听服务器发送计量任务;

(2)秤点监听服务器接收秤点客户端发送来的计量任务后,通过redis频道消息触发分发任务服务器,并向秤点客户端返回对应消息id,若秤点客户端未收到对应消息id,则返回步骤(1),否则执行步骤(3);

(3)分发任务服务器被秤点监听服务器发送来的计量任务触发后,查找下一个空闲坐席客户端,然后分配计量任务到对应的坐席客户端的每坐席任务状态redis列表下,并通过redis频道消息通知坐席监听服务器;

(4)坐席监听服务器接收分发任务服务器发送来的计量任务,通知坐席客户端;

(5)坐席客户端接收坐席监听服务器发送来的计量任务,完成计量任务,然后发送计量任务完成命令给坐席监听服务器;

(6)坐席监听服务器接收坐席客户端发送来的计量任务完成命令,并向坐席客户端返回对应消息id,若坐席客户端未接收到对应消息id,则返回步骤(5),否则执行步骤(7);

(7)坐席监听服务器通过redis频道消息通知秤点监听服务器,由秤点监听服务器通知秤点客户端。

其中,分发任务服务器包括redis秤点任务堆栈列表、活动坐席redis列表、每坐席任务状态redis列表。触发分发任务服务器工作的事件有:秤点客户端上传计量任务数据后,通过redis频道消息通知;坐席客户端完成计量任务后,通过redis频道消息通知。

步骤(3)中分发任务服务器分发任务规则包括:

(a)最早的计量任务优先分配原则;

(b)按坐席客户端次序分配计量任务,当某个坐席客户端忙时,跳过该坐席客户端继续分配;

(c)坐席客户端定义只关注某几个秤点客户端,分发任务服务器只分配对应秤点客户端的计量任务到该坐席客户端;

(d)计量任务被坐席客户端退回到任务队列后,优先将计量任务安排给该坐席客户端。

该规则设置合理,使每个坐席客户端平均分配到计量任务,提高处理效率。

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1