CN110691120A - 一种定时任务状态检测方法、服务器及检测系统 - Google Patents
一种定时任务状态检测方法、服务器及检测系统 Download PDFInfo
- Publication number
- CN110691120A CN110691120A CN201910854121.5A CN201910854121A CN110691120A CN 110691120 A CN110691120 A CN 110691120A CN 201910854121 A CN201910854121 A CN 201910854121A CN 110691120 A CN110691120 A CN 110691120A
- Authority
- CN
- China
- Prior art keywords
- task
- timing
- server
- electronic terminal
- heartbeat packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及任务状态检测领域,公开一种定时任务状态检测方法、服务器及检测系统,该方法首先向电子终端同步发送定时任务请求,以使电子终端根据该定时任务请求执行任务并返回任务心跳包,该任务心跳包携带有与每个任务对应的任务信息及任务状态标识码,同时异步将电子终端的待执行任务映射存储在服务器的心跳包检测表中,然后判断与每个任务状态标识码对应的任务是否已完成,若是,标记该任务的任务状态为已完成状态,并将其从心跳包检测表中剔除,若否,更新该任务信息。基于该方法,本发明实施例服务器可以从心跳检测表中获取与该定时任务有关的所有信息,进而准确检测该定时任务的任务状态,且网络架构简单,不需额外的人工介入,减小成本。
Description
技术领域
本发明主要涉及任务状态检测领域,更具体地说是涉及一种定时任务状态检测方法、服务器及检测系统。
背景技术
日常软件开发中,系统会对定时任务做好统一管理和统一业务调度,并采用状态来控制定时任务的流转,例如在执行的定时任务,其状态标识为执行中,但当系统遇到不可预知的外力因素,例如系统升级杀死定时任务所在的应用服务,或者部署机器宕机之类的因素,这是的定时任务状态就会一直为执行中,但定时任务因宕机之类的原因,其真正的状态不会是在执行中,因此,当后续重启时,无法判断此时的定时任务是真的在执行中,还是因宕机的原因导致状态没有更新。
目前的状态检测方法至少存在以下缺点:需要额外的人工进行介入,增加人工成本,或者检测机构笨重复杂,配置繁琐。
发明内容
本发明实施例旨在提供一种定时任务状态检测方法及服务器,以能够自动准确检测定时任务状态。
为了解决上述技术问题,本发明提供以下技术方案:
在第一方面,本发明实施例提供一种定时任务状态检测方法,应用于服务器,所述方法包括:
向电子终端发送定时任务请求,以使所述电子终端根据所述定时任务请求执行任务并返回任务心跳包,所述任务心跳包携带有与每个所述任务对应的任务信息及任务状态标识码,同时异步将所述电子终端的待执行任务映射存储在所述服务器的心跳包检测表中;
根据所述定时任务状态标识码,判断所述定时任务是否是已完成;
若是,标记所述任务的任务状态为已完成状态,将所述已完成状态的任务从所述心跳包检测表中剔除;
若否,更新所述任务信息。
可选地,所述方法还包括:
异步定时遍历所述心跳包检测表;
检查所述关系型数据库表中的各个任务是否满足预设异常条件;
若是,初始化满足预设异常条件的任务。
可选地,所述预设异常条件包括预设超时时长,所述检查所述心跳包检测表中的各个任务是否满足预设异常条件,包括:
计算每个所述任务的最后更新时间与当前时间的时长,获取所述定时任务信息的未更新时长;
判断所述未更新时长是否大于或等于所述预设超时时长。
可选地,所述方法包括:
在所述向电子终端发送定时任务请求之前,判断是否有新的所述定时任务需要执行;
若是,更新所述心跳包检测表。
可选地,所述方法还包括:
在所述向电子终端发送定时任务请求之前,对所述电子终端进行网络检测,并连接所述电子终端端口;
根据连接结果,将所述定时任务信息中的所述定时任务状态标记为执行中。
可选地,所述定时任务心跳包由所述电子终端按照预设频率发送的。
可选地,在判断与每个所述任务状态标识码对应的任务是否已完成之前,所述方法还包括:
启动接收线程接收并处理所述任务心跳包。
在第二方面,本发明实施例提供一种定时任务状态检测装置,所述装置包括:
发送模块,用于向电子终端同步发送定时任务请求,以使所述电子终端根据所述定时任务请求执行任务并返回任务心跳包,所述任务心跳包携带有与每个所述任务对应的任务信息及任务状态标识码,同时异步将所述电子终端的待执行任务映射存储在所述服务器的心跳包检测表中;
第一判断模块,用于根据所述定时任务状态标识码,判断所述定时任务是否是已完成;
标记模块,用于标记所述任务的任务状态为已完成状态;
第一更新模块,用于更新所述任务信息。
在第三方面,本发明实施例提供一种服务器,所述服务器包括:
至少一个处理器;以及
与所述至少一个处理通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器执行上述的方法。
在第四方面,本发明实施例提供一种定时任务状态检测系统,包括:若干电子终端;和上述服务器,所述服务器与每个所述电子终端通信连接。
基于上述技术方案,本发明实施例提供了一种定时任务状态检测方法,应用于服务器,该方法首先向电子终端同步发送定时任务请求,以使电子终端根据该定时任务请求执行任务并返回任务心跳包,该任务心跳包携带有与每个任务对应的任务信息及任务状态标识码,同时异步将电子终端的待执行任务映射存储在服务器的心跳包检测表中,然后判断与每个任务状态标识码对应的任务是否已完成,若是,标记该任务的任务状态为已完成状态,并将其从心跳包检测表中剔除,若否,更新该任务信息。通过上述方式,本发明实施例服务器可以从心跳包检测表中获取与该定时任务有关的所有信息,进而准确检测该定时任务的任务状态,并且网络架构简单,不需额外的人工介入,减小成本。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种定时任务状态检测系统的结构示意图;
图2a和图2b是本发明实施例提供的一种定时任务状态检测的工作流程示意图;
图3是本发明方法实施例提供的一种定时任务状态检测方法的流程示意图;
图4是本发明方法另一实施例提供的一种定时任务状态检测方法的流程示意图;
图5是图4中步骤306流程示意图;
图6是本发明又另一实施例提供的一种定时任务状态检测方法的流程示意图;
图7是本发明又另一实施例提供的一种定时任务状态检测方法的流程示意图;
图8是本发明实施例提供的一种定时任务状态检测装置的结构示意图;
图9是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的定时任务状态检测方法,可以在任何合适类型、具有运算能力的电子设备中执行,诸如摄像机、人脸扫描设备、通道检测设备、服务器、台式计算机、智能手机、平板电脑以及其他电子产品中。
在一些实施例中,电子设备可被构造成任意合适形状,并应用在任何合适的业务场所,例如电子设备可以是具有定时任务状态检测功能的处理系统,处理系统可以执行下文所阐述的定时任务请求处理方法。
请参阅图1,图1是本发明实施例提供的一种定时任务状态检测系统的结构示意图。如图1所示,定时任务状态检测系统包括至少一个第一终端设备10以及服务器20。
服务器20位于网络侧端为用户提供服务的服务设备,
此处的服务器可以是一个物理服务器或者多个物理服务器虚拟而成的一个逻辑服务器。服务器也可以是多个可互联通信的服务器组成的服务器群,且各个功能模块可分别分布在服务器群中的各个服务器上。
第一终端设备10可以是平板电脑、笔记本电脑、智能手机等用户设备。在本发明实际应用中,通过与服务器20建立通信连接,用户可以通过第一终端设备10访问服务器20,实现第一终端设备10的各种功能,服务器20可以作为定时任务调度端,向第一终端设备10发送定时任务,第一终端设备10作为任务实现端,由第一终端设备10执行该定时任务,并向任务调度端,服务器20返回定时任务执行情况,返回定时任务情况是通过以一定频率向服务器20发送心跳包的方式实现。
在一些实施例中,第一终端设备10可以是安装在如上述所述设备上的应用程序。
服务器20分别与第一终端设备10、第二终端设备30通过网络通讯,服务器20中的任务调度端首先从数据库中获取定时任务,并将该定时任务放入服务器20的心跳包检测表中,同时异步向第一终端设备10发送定时任务请求,该定时任务请求携带有与定时任务对应的定时任务信息,服务器20调用第一终端设备10开始执行该任务,第一终端设备10接收该定时任务请求以后,按照定时任务信息同步执行该定时任务,同时,按照一定频率向服务器20异步发送心跳包,该心跳包中包含该定时任务的信息,比如:定时任务执行状态标识码,定时任务标号,定时任务执行记录标识码,执行次数等有关记录信息。
服务器20启动接收线程接收该任务心跳包,并根据该任务心跳包包含的任务信息,进行下一步处理,主要是获取与每个定时任务对应的任务状态,根据其任务状态同步处理修改存储于服务器20的心跳包检测表的任务信息,同时,异步定时检测心跳包检测表,以准确检测每个定时任务的状态。
本发明实施例提供一种定时任务状态检测方法,应用于服务器。请一并参阅图2a和图2b,图2a和图2b是本发明实施例提供的一种定时任务状态检测的工作流程图:
如图2a和图2b所示,该定时任务状态检测方法200,包括:
步骤201:服务器对电子终端网络检测;
服务器在发送定时任务请求之前,会先对对电子终端进行网络检测,检测其能否与电子终端指定端口建立连接,若能连接,则电子终端与服务器建立持久性连接,通过线程发送和接收相关信息。
步骤202:服务器调度端向电子终端发送定时任务请求;
定时任务相当于闹钟,即在什么时间做什么事情(执行什么命令/脚本),定时任务的相关信息均在数据库中存储,由于定时任务有多个,所以每个定时任务都有一个定时任务标号,也就是定时任务ID,该定时任务ID可以标识各个定时任务,定时任务请求中携带有定时任务ID。服务器首先从预设存储系统或者数据库中获取定时任务,并将包含任务信息的任务请求发送给电子终端,调用电子终端执行该定时任务时,服务器还会将该定时任务的相关信息存储在心跳包检测表,该心跳包检测表是存储于数据库中的数据表,其可以采用远程缓存和本地内存缓存一起使用的方式,防止服务器重启或者频繁更新远程缓存。相关定时任务信息包括定时任务ID、定时任务状态标识码,定时任务状态以及定时任务执行记录ID,定时任务执行记录ID是在任务ID的基础上加上该定时任务执行的时间戳,以记录该心跳包发送的时间或者是该定时任务信息更新时间等,例如定时任务ID是“ABC”,定时任务执行记录ID可以是“ABC_20190905120458567”。
当服务器与电子终端进行持久连接时,即服务器能够连接上电子终端指定端口,那么服务器就会将心跳包检测表中的定时任务状态标记为执行中。也就是,心跳包检测表中存储的均是状态为执行中的定时任务信息。
步骤203:电子终端向服务器发送定时任务心跳包;
电子终端针对任务实现入口无感知的采用切面方式进行拦截,这样可以使得电子终端在执行定时任务时,对其他的业务代码无入侵,无感知,其他代码不需要做任何调整。在接收定时任务请求以后,会将关于该定时任务的相关信息储存在心跳包任务表,该心跳包任务表中包含多个需要执行的任务信息,同时电子终端执行该定时任务,并以一定频率向服务器发送定时任务心跳包,以告知服务器该定时任务执行情况,发送频率可以由用户根据需要而设置,该频率可以设置为每30秒发送一次。
电子终端采用定时任务状态标识码反应定时任务的状态,若电子终端正在执行该定时任务,那么该定时任务的状态标识码是“假”,代表该定时任务正在执行中,若定时任务已经执行完成,那么电子终端就将该定时任务的状态标识码修改为“真”,代表该定时任务的状态是已完成。定时任务的状态标识码默认是“假”。
电子终端以一定频率向服务器发送定时任务心跳包,该定时任务心跳包包括该定时任务的状态标识码,服务器可以根据该状态标识码判断该定时任务目前的状态。并且,若该定时任务已经被执行完成,在修改定时任务状态标识码和发送定时任务心跳包以后,电子终端会将该定时任务的相关信息从心跳包列表中移除。
步骤204:服务器启动接收线程接收该定时任务心跳包;
服务器在接收该定时任务心跳包时,采用线程的方式接收定时任务心跳包,其中,线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。采用线程级别的方式接收定时任务心跳包,使得系统结构简单,减小部署成本。
步骤205:服务器对该定时任务心跳包进行处理;
服务器通过接收线程获取该定时任务心跳包以后,进一步通过接收线程处理该定时任务心跳包,根据该定时任务心跳包包含的定时任务状态标识码,判断该定时任务状态是否是已完成,若定时任务状态标识码为“假”,则服务器确定该定时任务的状态是未完成或者正在执行中,然后服务器根据该定时任务ID从心跳包检测表中找到该定时任务的相关信息,更新该定时任务信息,例如修改该定时任务对应的心跳包的发送时间,即修改定时任务执行记录ID。若定时任务状态标识码为“真”,则服务器确定该定时任务的状态是已完成,那么服务器会将该定时任务的相关信息从心跳包检测表中移除。
服务器对该心跳包处理以后,在进行下一次的定时任务请求发送之前,会判断是否有新的定时任务需要执行,若是,服务器就会将新的定时任务的相关信息存储于心跳包检测表,更新该心跳包检测表,进行下一次的定时任务请求。
步骤206:服务器定时遍历心跳包检测表;
服务器在处理定时任务心跳包的同时,其会异步定时遍历心跳包检测表,每隔一段时间就会遍历一次心跳包检测表查询定时任务的相关信息,判断每个定时任务信息是否满足预设异常条件,若满足,服务器则会重置任务运行状态,也就是将定时任务初始化,这样就会自动恢复定时任务状态,不影响其下一周期的执行,使得定时任务在下一周期继续自动执行该定时任务,若不满足,服务器则确定该定时任务目前运行正常,没有出现异常。判断的依据可以由用户根据定时任务的相关信息进行设置,例如定时任务状态更新时间,或者定时任务心跳包发送时间等。预设异常条件可以根据定时任务的异常指标进行设置,例如预设超时时长等。
服务器可以查询每个定时任务的定时任务执行记录ID或者是定时任务对应的心跳包发送时间,根据定时任务执行记录ID,获取该定时任务信息的未更新时长,未更新时长就是该定时任务最后一次更新时间距离当前时间的时长,判断该定时任务的未更新时长是否大于或等于预设超时时长,若是,代表该定时任务的相关信息已经有一段时间未进行更新,服务器确定该定时任务出现异常,或者电子终端出现宕机导致该定时任务的相关信息在预设超时时长内一直未更新,也就是即使该定时任务的状态仍然是执行中,但因为长时间未更新,服务器确定该定时任务出现异常或者是系统出现宕机导致该定时任务状态没有更新,一直保持在执行中的状态,但其实系统已经宕机或者已经出现其他异常,所以服务器会将该定时任务自动初始化,或者向联系人报警,由人工介入处理,具体的操作可以由用户根据需要而设置。例如:若心跳包发送的频率是每30秒发送一次,服务器从定时任务执行记录ID中获取该定时任务信息的未更新时长是300秒,也就是该定时任务的最后一次更新时间距离当前时间的时长是300秒或者服务器连续10次未收到电子终端发送的心跳包,那么即使该定时任务的状态是执行中,服务器还是会确定该定时任务状态异常,该异常可能是由于系统宕机或者是其他引起的异常,最后服务器可以自动重置满足预设异常条件的任务,对该定时任务进行初始化。这种操作可以更加准确地检测该定时任务的状态,自动重启下次的执行,且不需要额外的人工进入,减少成本。
上述步骤结束以后,服务器可以进行下一次的向电子终端发送任务请求,调用电子终端执行任务。
请参阅图3,图3是本发明实施例提供的一种定时任务状态检测方法的流程示意图,如图3所示,该定时任务状态检测方法300可以包括以下步骤:
步骤301、向电子终端同步发送定时任务请求,以使所述电子终端根据所述定时任务请求执行任务并返回任务心跳包,所述任务心跳包携带有与每个所述任务对应的任务信息及任务状态标识码,同时异步将所述电子终端的待执行任务映射存储在所述服务器的心跳包检测表中;
服务器首先从数据库中获取要执行的定时任务,然后将该任务请求发送给电子终端,调用电子终端执行该定时任务,电子终端将每个定时任务均放入心跳包任务表,以定时任务ID区分各个定时任务,然后电子终端开始执行定时任务,并以任务状态标识码代表任务状态,电子终端在同步执行任务的同时,会异步以一定频率向服务器返回一个任务心跳包,该任务心跳包携带有与每个任务对应的任务信息以及任务状态标识码,任务信息中还包括任务执行记录ID,其记录了心跳包发送时间等。
在向电子终端发送定时任务请求的同时,会异步将电子终端的待执行任务映射存储在服务器的心跳包检测表中,该心跳包检测表中存储的均是待执行任务的相关信息,当电子终端返回心跳包时,还会根据返回的心跳包,将心跳包检测表中的信息进行更新或者删除。
步骤302:判断与每个所述任务状态标识码对应的任务是否已完成;
服务器启动接收线程接收电子终端发送的心跳包,并采用接收线程对心跳包进行分析处理,根据每个任务的任务状态标识码,判断其对应的任务是否已完成,状态标识码对应的任务状态可以由用户自己根据需要而设置,例如:若状态标识码是“真”,则其对应的任务已完成,若状态标识码是“假”,则其对应的任务正在执行中。采用轻量级线程级别的方式进行操作,相比使用进程,该方法不会那么笨重,部署成本也降低,整个系统架构也会更简单。
步骤303:若是,标记所述任务的任务状态为已完成状态,将所述已完成状态的任务从所述心跳包检测表中剔除;
服务器会将所有的定时任务的信息映射存储在心跳包检测表,同样以任务ID区分各个定时任务,各个定时任务以一定顺序存储于心跳包检测表,例如以任务ID顺序或者以发送时间顺序等,当服务器确定定时任务是已完成状态,那么服务器根据该任务ID,在心跳包检测表中找到该定时任务的相关信息,然后将该任务有关的所有的任务信息从心跳包检测列表中剔除。这样后续再从心跳包检测表中检测每个定时任务状态时,就不会再重复检测已经执行完成的任务。
步骤304:若否,更新所述任务信息。
若服务器确定该定时任务的状态是执行中,则根据任务ID在心跳包检测表中找到该任务的任务信息,然后将该任务信息进行更新,主要是更新任务记录ID,也就是更新跟该任务有关的所有时间点,以便后续查询和记录。
本实施例通过一种的定时任务状态检测方法,应用于服务器,该方法包括首先向电子终端发送定时任务请求,以使电子终端根据该定时任务请求执行任务并返回任务心跳包,该任务心跳包携带有与每个任务对应的任务信息及任务状态标识码,同时异步将电子终端的待执行任务映射存储在服务器的心跳包检测表中,然后判断与每个任务状态标识码对应的任务是否已完成,若是,标记该任务的任务状态为已完成状态,并将其从心跳包检测表中剔除,若否,更新该任务信息。通过上述方式,本发明实施例服务器可以从心跳包检测表中获取与该定时任务有关的所有信息,例如每个定时任务的状态以及与该定时任务有关的所有时间点,进而准确检测该定时任务的任务状态,并且网络架构简单,不需额外的人工介入,减小成本。
在一些实施例中,请参阅图4,该定时任务状态检测方法300还包括:
步骤305:异步定时遍历所述心跳包检测表;
服务器在进行上述操作的同时,会异步定时遍历心跳包检测表,这一步是异步操作,无需等待其他步骤结果,就可以执行,提高了运行效率。
步骤306:检查所述关系型数据库表中的各个任务是否满足预设异常条件;
由于已经执行完成的任务已从心跳包检测表中剔除,那么心跳包检测包中存储的均是任务状态为未完成的任务信息,但是该未完成的任务状态并不一定代表目前该任务正在执行中,任务异常或者系统异常或者系统宕机也会使得任务状态一直保持执行中,因此,每隔一段时间,服务器就会检测心跳包检测表中的各个任务是否满足预设异常条件,预设异常条件是可以由用户根据需要而设置,主要是任务异常的各种指标,例如:定时任务产生异常或者系统宕机引起任务异常时,定时任务对应的心跳包最后一次的发送时间,或者任务状态未更新时间。
步骤307:若是,初始化满足预设异常条件的任务。
若服务器检测到某个定时任务产生了异常,并不是真的处于执行中,则会自动将该定时任务初始化,使其不影响下个周期的任务的执行,当某个定时任务产生异常时,若系统设置了报警机制,服务器还可以将该异常情况告警联系人,这时再由人工介入处理,用户可以根据需要自由选择。通过这种方法,可以准确检测任务状态,并且,可以检测出异常任务,并将其自动初始化,不影响该定时任务在下一周期的执行。
在一些实施例中,请参阅图5,预设异常条件包括预设超时时长,步骤306包括:
步骤3061:计算每个所述任务的最后更新时间与当前时间的时长,获取所述定时任务信息的未更新时长;
服务器将预设异常条件设为预设超时时长,预设超时时长的具体值可以由用户根据需要而设置。服务器首先在心跳包检测表中查询到该定时任务的任务信息,获取每个任务的最后更新时间,然后计算每个任务的最后更新时间与当前时间的时长,也就是每个定时任务信息的未更新时长。
步骤3062:判断所述未更新时长是否大于或等于所述预设超时时长。
若定时任务的未更新时长大于或等于设定的预设超时时长,代表该定时任务异常,若小于预设超时时长,代表该定时任务是真的在执行中。
在一些实施例中,请参阅6,该方法300还包括:
步骤308:在向电子终端发送定时任务请求之前,判断是否有新任务需要执行;
若有新任务需要执行,服务器会从数据库中获取该新任务,再进行下一次的发送任务请求操作。
步骤309:若是,更新所述心跳包检测表。
同时,服务器会将新任务的任务信息存储在心跳包检测表,对心跳包检测表进行更新。
在一些实施例中,请参阅图7,该方法300还包括:
步骤310:在向电子终端发送定时任务请求之前,对所述电子终端的指定端口进行网络检测;
在服务器向电子终端发送定时任务请求之前,服务器会先与电子终端指定端口建立连接,对电子终端指定端口进行网络检测。
步骤311:若连接上所述指定端口,将所述心跳包检测表中任务的任务状态标记为执行中。
若能连接上电子终端指定端口,代表电子终端与服务器之间可以互相通信,服务器可以调用电子终端执行任务,因此,将心跳包检测表中任务的任务状态标记为执行中。
请参阅图8,图8是本发明实施例提供一种定时任务状态检测装置的结构示意图,如图8所示,该装置400包括发送模块401,用于向电子终端同步发送定时任务请求,以使所述电子终端根据所述定时任务请求执行任务并返回任务心跳包,所述任务心跳包携带有与每个所述任务对应的任务信息及任务状态标识码,同时异步将所述电子终端的待执行任务映射存储在所述服务器的心跳包检测表中;
第一判断模块402,用于根据所述定时任务状态标识码,判断所述定时任务是否是已完成;标记模块403,用于标记所述任务的任务状态为已完成状态,将所述已完成状态的任务从所述心跳包检测表中剔除;第一更新模块404,用于更新所述任务信息。
在本发明实施例中,该定时任务状态检测装置400首先向电子终端同步发送定时任务请求,以使电子终端根据该定时任务请求执行任务并返回任务心跳包,该任务心跳包携带有与每个任务对应的任务信息及任务状态标识码,同时异步将该电子终端的待执行任务映射存储在服务器的心跳包检测表中,
然后判断与每个任务状态标识码对应的任务是否已完成,若是,标记该任务的任务状态为已完成状态,并将已完成状态的任务从心跳包检测表中剔除,若否,更新该任务信息。通过上述方式,本发明实施例服务器可以从心跳包检测表中获取与该任务有关的所有信息,例如每个定时任务的状态以及与该定时任务有关的所有时间点,进而准确检测该定时任务的任务状态,并且网络架构简单,不需额外的人工介入,减小成本。
在本实施例的一些可选地实现方式中,请继续参阅图8,该装置400还包括遍历模块405,用于异步定时遍历所述心跳包检测表;检查模块406,用于检查所述关系型数据库表中的各个任务是否满足预设异常条件;初始化模块407,用于初始化满足预设异常条件的任务。
在一些实施例中,请继续参阅图8,所述预设异常条件包括预设超时时长,检查模块406包括:计算单元4061,用于计算每个所述任务的最后更新时间与当前时间的时长,获取所述定时任务信息的未更新时长;判断单元4062,用于判断所述未更新时长是否大于或等于所述预设超时时长。
在一些实施例中,请继续参阅图8,该装置400还包括:第二判断模块408,用于判断是否有新的所述定时任务需要执行;第二更新模块409,用于更新所述心跳包检测表。
在一些实施例中,请继续参阅图8,该装置400还包括:检测模块410,用于对所述电子终端进行网络检测,并连接所述电子终端端口,第二标记模块411,用于根据连接结果,将所述定时任务信息中的所述定时任务状态标记为执行中。
在一些实施例中,请继续参阅图8,在判断与每个所述任务状态标识码对应的任务是否已完成之前,该装置400还包括启动模块412,用于启动接收线程接收并处理所述任务心跳包。
值得说明的是,上述装置内的模块之间的信息交互、执行过程等内容,由于与本发明的方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
请参阅图9,图9是本发明实施例提供执行上述定时任务状态检测方法的电子设备500的硬件结构示意图,如图9所示,该电子设备500包括:
一个或多个处理器501以及存储器502,图9中以一个处理器501为例。
处理器501和存储器502可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的定时任务状态检测方法对应的程序指令/模块(例如,附图8所示的各个模块)。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例定时任务状态检测方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据定时任务状态检测装置的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至定时任务状态检测装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器502中,当被所述一个或者多个处理器501执行时,执行上述任意方法实施例中的定时任务状态检测方法,例如,执行以上描述的图2至图7的方法步骤,实现图8中的各模块和各单元的功能。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(2)其他具有数据交互功能的电子装置。
本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图2至图7的方法步骤,实现图8中的各模块和各单元的功能。
本发明实施例提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时时,使所述计算机执行上述任意方法实施例中的定时任务状态检测方法,例如,执行以上描述的图2至图7的方法步骤,实现图8中的各模块和各单元的功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域普通技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种定时任务状态检测方法,应用于服务器,其特征在于,所述方法包括:
向电子终端同步发送所述定时任务请求,以使所述电子终端根据所述定时任务请求执行任务并返回任务心跳包,所述任务心跳包携带有与每个所述任务对应的任务信息及任务状态标识码,同时异步将所述电子终端的待执行任务映射存储在所述服务器的心跳包检测表中;
根据所述定时任务状态标识码,判断所述定时任务是否是已完成;
若是,标记所述任务的任务状态为已完成状态,将所述已完成状态的任务从所述心跳包检测表中剔除;
若否,更新所述任务信息。
2.根据权利要求1所述的方法,其特征在于,
异步定时遍历所述心跳包检测表;
检查所述关系型数据库表中的各个任务是否满足预设异常条件;若是,初始化满足预设异常条件的任务。
3.根据权利要求2所述的方法,其特征在于,所述预设异常条件包括预设超时时长,所述检查所述心跳包检测表中的各个任务是否满足预设异常条件,包括:
计算每个所述任务的最后更新时间与当前时间的时长,获取所述定时任务信息的未更新时长;
判断所述未更新时长是否大于或等于所述预设超时时长。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在向所述电子终端发送定时任务请求之前,判断是否有新的所述定时任务需要执行;
若是,更新所述心跳包检测表。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述向电子终端发送定时任务请求之前,对所述电子终端进行网络检测,并连接所述电子终端端口;
根据连接结果,将所述定时任务信息中的所述定时任务状态标记为执行中。
6.根据权利要求1所述的方法,其特征在于,所述定时任务心跳包由所述电子终端按照预设频率发送的。
7.根据权利要求1至6任一项所述的方法,其特征在于,在判断与每个所述任务状态标识码对应的任务是否已完成之前,所述方法还包括:
启动接收线程接收并处理所述任务心跳包。
8.一种定时任务状态检测装置,其特征在于,所述装置包括:
发送模块,用于向电子终端同步发送定时任务请求,以使所述电子终端根据所述定时任务请求执行任务并返回任务心跳包,所述任务心跳包携带有与每个所述任务对应的任务信息及任务状态标识码,同时异步将所述电子终端的待执行任务映射存储在所述服务器的心跳包检测表中;
第一判断模块,用于根据所述定时任务状态标识码,判断所述定时任务是否是已完成;
标记模块,用于标记所述任务的任务状态为已完成状态;
第一更新模块,用于更新所述任务信息。
9.一种服务器,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-权利要求7任意一项所述的定时任务状态检测方法。
10.一种定时任务状态检测系统,其特征在于,包括:
若干电子终端;和
如权利要求9所述的服务器,所述服务器与每个所述电子终端通信连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854121.5A CN110691120A (zh) | 2019-09-10 | 2019-09-10 | 一种定时任务状态检测方法、服务器及检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854121.5A CN110691120A (zh) | 2019-09-10 | 2019-09-10 | 一种定时任务状态检测方法、服务器及检测系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110691120A true CN110691120A (zh) | 2020-01-14 |
Family
ID=69107964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910854121.5A Pending CN110691120A (zh) | 2019-09-10 | 2019-09-10 | 一种定时任务状态检测方法、服务器及检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110691120A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111342945A (zh) * | 2020-02-19 | 2020-06-26 | 广东乐心医疗电子股份有限公司 | 主从通信方法和装置 |
CN111627134A (zh) * | 2020-05-19 | 2020-09-04 | 联永智能科技(上海)有限公司 | 一种任务处理方法、装置、服务器、设备和介质 |
CN111901176A (zh) * | 2020-08-03 | 2020-11-06 | 京信通信系统(中国)有限公司 | 故障确定方法、装置、设备及存储介质 |
CN112947219A (zh) * | 2021-03-02 | 2021-06-11 | 阳城国际发电有限责任公司 | 煤场数字化控制方法及系统 |
CN117278450A (zh) * | 2023-11-22 | 2023-12-22 | 深圳市鲸视科技有限公司 | 心跳包通信方法、测试系统、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130204926A1 (en) * | 2011-10-31 | 2013-08-08 | Pfu Limited | Information processing system, information processing device, client terminal, and computer readable medium |
CN103716182A (zh) * | 2013-12-12 | 2014-04-09 | 中国科学院信息工程研究所 | 一种面向实时云平台的故障检测与容错方法及系统 |
CN107688496A (zh) * | 2017-07-24 | 2018-02-13 | 上海壹账通金融科技有限公司 | 任务分布式处理方法、装置、存储介质和服务器 |
CN108337275A (zh) * | 2017-01-19 | 2018-07-27 | 百度在线网络技术(北京)有限公司 | 用于分发服务器的任务分发方法、装置以及设备 |
CN109831520A (zh) * | 2019-03-07 | 2019-05-31 | 网宿科技股份有限公司 | 一种定时任务调度方法及相关装置 |
-
2019
- 2019-09-10 CN CN201910854121.5A patent/CN110691120A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130204926A1 (en) * | 2011-10-31 | 2013-08-08 | Pfu Limited | Information processing system, information processing device, client terminal, and computer readable medium |
CN103716182A (zh) * | 2013-12-12 | 2014-04-09 | 中国科学院信息工程研究所 | 一种面向实时云平台的故障检测与容错方法及系统 |
CN108337275A (zh) * | 2017-01-19 | 2018-07-27 | 百度在线网络技术(北京)有限公司 | 用于分发服务器的任务分发方法、装置以及设备 |
CN107688496A (zh) * | 2017-07-24 | 2018-02-13 | 上海壹账通金融科技有限公司 | 任务分布式处理方法、装置、存储介质和服务器 |
CN109831520A (zh) * | 2019-03-07 | 2019-05-31 | 网宿科技股份有限公司 | 一种定时任务调度方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
王素贞,白彦峰: "《大数据技术基础实验教程》", 31 July 2018 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111342945A (zh) * | 2020-02-19 | 2020-06-26 | 广东乐心医疗电子股份有限公司 | 主从通信方法和装置 |
CN111342945B (zh) * | 2020-02-19 | 2022-09-27 | 广东乐心医疗电子股份有限公司 | 主从通信方法和装置 |
CN111627134A (zh) * | 2020-05-19 | 2020-09-04 | 联永智能科技(上海)有限公司 | 一种任务处理方法、装置、服务器、设备和介质 |
CN111901176A (zh) * | 2020-08-03 | 2020-11-06 | 京信通信系统(中国)有限公司 | 故障确定方法、装置、设备及存储介质 |
CN112947219A (zh) * | 2021-03-02 | 2021-06-11 | 阳城国际发电有限责任公司 | 煤场数字化控制方法及系统 |
CN117278450A (zh) * | 2023-11-22 | 2023-12-22 | 深圳市鲸视科技有限公司 | 心跳包通信方法、测试系统、终端设备及存储介质 |
CN117278450B (zh) * | 2023-11-22 | 2024-03-08 | 深圳市鲸视科技有限公司 | 心跳包通信方法、测试系统、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110691120A (zh) | 一种定时任务状态检测方法、服务器及检测系统 | |
US11659020B2 (en) | Method and system for real-time modeling of communication, virtualization and transaction execution related topological aspects of monitored software applications and hardware entities | |
TW201944236A (zh) | 任務處理方法、裝置及系統 | |
WO2019051948A1 (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN110650164B (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN111488181B (zh) | 任务调度方法、装置、存储介质及服务器 | |
WO2023019736A1 (zh) | 基于云主机的qga服务管理方法、装置、设备及介质 | |
CN113641544B (zh) | 用于检测应用状态的方法、装置、设备、介质和产品 | |
CN109246280B (zh) | 通讯录云处理方法、装置、计算机设备及可读存储介质 | |
CN112328602B (zh) | 一种数据写入Kafka的方法、装置及设备 | |
CN111506393B (zh) | 一种基于arm的虚拟化装置及其使用方法 | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
WO2024041283A1 (zh) | 一种客户端升级方法、装置、终端设备及存储介质 | |
WO2015021827A1 (en) | Method,device and system for offline reconnection of a web application | |
CN109408104B (zh) | 一种获取游戏整合信息的方法及装置 | |
CN116450176A (zh) | 版本更新方法、装置、电子设备及存储介质 | |
CN114968529A (zh) | 定时器实现方法及相关产品 | |
CN112463348B (zh) | 一种定时任务处理方法及装置 | |
CN109101253B (zh) | 云计算系统中主机的管理方法和装置 | |
CN113656378A (zh) | 一种服务器管理方法、装置、介质 | |
CN110673942B (zh) | 一种云平台的异步进程结束方法、装置及云平台服务器 | |
CN105487847B (zh) | 一种功能发布方法和设备 | |
CN111444253A (zh) | 数据导入方法、装置、计算机可读存储介质和计算机设备 | |
CN108229978B (zh) | 一种客户满意度回访方法、设备及存储介质 | |
CN112130900A (zh) | 一种bmc的用户信息管理方法、系统、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200114 |