The purpose of the invention is to provide a JAVA TIMER high based on timer logic realization method, through the mechanism of competition, at the same time to ensure the operation right of only one task scheduling module to grab, so that the business logic operation in accordance with the user's expectations; at the same time, the deployment of multiple service execution module, if a service execution module failure cannot be executed, you can modify the URL address will perform the logic of transfer to another deployment service execution module on the server, greatly improving the speed of fault recovery.
【技术实现步骤摘要】
基于JAVATIMER高可用性的定时器逻辑实现方法
本专利技术涉及一种基于JAVATIMER高可用性的定时器逻辑实现方法。
技术介绍
现有的软件产品大多用于客户生产环境,为客户商业用途提供服务。这就要求软件产品以及架构有很高的可用性,在故障时能够及时恢复,同时减少人工的干预。有一种应用场景,需要定时执行特定的任务逻辑,在软件开发中一般是通过定时器来实现的。在JAVA中定时器大多的实现方式是通过TIMER以及第三方的SpringQuartz,在定时执行任务代码上,这两者都没有什么问题,甚至可以说任务的执行时间非常准确。可当部署到生产环境时,如何提高定时器的可用性以及故障恢复能力就成了一个问题。现有的软件定时器,无论通过何种技术实现,一般是将任务调度逻辑与业务逻辑合并写在一起,这样就造成一个问题:一旦部署定时器的服务器出现故障,那么整个定时器都会停止工作,可用性不高。而如果将定时器部署多个服务,那么相同的定时器之间如何协调调度,又成为一个难题,因为同一时间只需要有一个定时器执行业务逻辑即可,多个定时器执行了相同的业务逻辑有可能会造成原来的逻辑混乱。
技术实现思路
本专利技术提供一种基于JAVATIMER高可用性的定时器逻辑实现方法,旨在提高定时器的可用性,将定时器调度与业务逻辑分离,并实现多个定时器对于同一任务的调度实现。为实现上述目的,本专利技术采用以下技术方案:一种基于JAVATIMER高可用性的定时器逻辑实现方法,其特征在于:包括以下步骤:S1:定时器采用JAVATIMER的方式实现,根据设定的参数,以一定的时间间隔执行任务调度;S2:业务执行模块负责具体的 ...
【技术保护点】
一种基于JAVA TIMER高可用性的定时器逻辑实现方法,其特征在于:包括以下步骤:S1:定时器TIMER采用JAVA TIMER的方式实现,包括任务调度模块及业务执行模块;TIMER根据设定的参数,以一定的时间间隔执行任务调度;S2:业务执行模块负责具体的业务逻辑,只有当任务调度模块符合条件的时候才会触发业务模块的执行,执行的主要方式是:当任务调度模块根据自己的实现逻辑判定任务可执行时,发送HTTP请求到业务执行模块的JSP页面上,以JSP页面为入口进入业务逻辑的执行;S3:根据相同定时器间的争抢原理,部署定时器的任务调度执行模块到N台应用服务器上,N台应用服务器上的定时任务调度模块通过争抢机制争抢相应任务的运行权限,当有任务调度模块争抢到运行权限后,根据配置的业务执行模块URL地址进行HTTP访问,来执行业务逻辑;N为大于等于2的自然数。
【技术特征摘要】
1.一种基于JAVATIMER高可用性的定时器逻辑实现方法,其特征在于:包括以下步骤:S1:定时器TIMER采用JAVATIMER的方式实现,包括任务调度模块及业务执行模块;TIMER根据设定的参数,以一定的时间间隔执行任务调度;S2:业务执行模块负责具体的业务逻辑,只有当任务调度模块符合条件的时候才会触发业务模块的执行,执行的主要方式是:当任务调度模块根据自己的实现逻辑判定任务可执行时,发送HTTP请求到业务执行模块的JSP页面上,以JSP页面为入口进入业务逻辑的执行;S3:根据相同定时器间的争抢原理,部署定时器的任务调度执行模块到N台应用服务器上,N台应用服务器上的定时任务调度模块通过争抢机制争抢相应任务的运行权限,当有任务调度模块争抢到运行权限后,根据配置的业务执行模块URL地址进行HTTP访问,来执行业务逻辑;N为大于等于2的自然数。2.根据权利要求1所述的基于JAVATIMER高可用性的定时器逻辑实现方法,其特征在于:S1在设定的时间间隔内TIMER执行的任务调度包括以下步骤:S11:根据传入TIMER的线程号码THREAD_MODE,查询任务信息表对应的THREAD_MODE的记录;S12:遍历查询到的记录,比较任务下次运行时间NE...
【专利技术属性】
技术研发人员:林宇,范叔亮,赖庆鑫,
申请(专利权)人:中邮科通信技术股份有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。