CN104092591A - 一种任务监控方法及系统 - Google Patents
一种任务监控方法及系统 Download PDFInfo
- Publication number
- CN104092591A CN104092591A CN201410380550.0A CN201410380550A CN104092591A CN 104092591 A CN104092591 A CN 104092591A CN 201410380550 A CN201410380550 A CN 201410380550A CN 104092591 A CN104092591 A CN 104092591A
- Authority
- CN
- China
- Prior art keywords
- task
- java
- data
- client
- project
- 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.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务监控方法,包括:利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则;利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;利用客户端执行所述更新后的java项目数据对应的java任务。本发明还公开了一种任务监控系统。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务监控方法及系统。
背景技术
为了便于理解,首先对几个技术术语进行简单的介绍:
spring:是为了解决企业应用程序开发复杂性的一种java开源框架。
quartz:是基于java编写的开源作业调度框架。
project:java项目。
instance:将项目部署到线上,有可能会部署一个或者多个项目,每个单独部署的项目被定义为实例。
task:java任务,一般通过一定规则来触发执行。
trigger:java任务对应的触发器,用于制定触发规则,在满足触发规则后会执行对应的java任务。
现有技术中,主要使用spring定义的quartz来灵活的管理java任务,但是容易造成如下问题:
1.如果需要频繁修改java任务和触发规则,则每次修改后都需要重启Project提供的服务。
2.在管理定时任务数据时,主要是通过配置xml(Extensible MarkupLanguage,可扩展标记语言)配置文件的方式来配置定时任务数据,然而,当同一个project的不同instance想要不同的java任务和触发规则的时候,每次发布project时都需要更改xml配置文件中的配置。例如,一个相同的java任务可以在测试环节和线上环节运行,但实际使用过程中,开发者若想要修改测试环节上的这个java任务,开发者只能手动修改测试环节中对java任务的配置,但如果需要经常修改配置文件中的配置,这种手动修改不但浪费时间和人力,还会造成修改错误等缺陷。
3.在java任务执行过程中,由于任务执行过程细节不透明,如果java任务执行失败将无法定位失败所在的环节,另外,由于每个业务线均使用自己的解决方案来实现,所以没有一个统一的解决方案来统一进行任务监控和警报,不利于所有任务线上任务的方便监管。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种任务监控方法及系统,以实现自动监控java任务的目的。
为实现上述目的,本发明实施例提供了一种任务监控方法,包括:
利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则;
利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;
利用客户端执行所述更新后的java项目数据对应的java任务。
优选地,所述利用客户端从zookeeper上面拉取存储的java项目数据前,还包括:
为每个用户新创建的java项目分配一个项目标识,并将所述项目标识保存到客户端的配置文件中;
将所述新创建的java项目的java项目数据同步到zookeeper上面;
所述利用客户端从zookeeper上面拉取存储的java项目数据,包括:
利用客户端获取所述配置文件中的项目标识,并从zookeeper上面拉取与所述项目标识对应的java项目数据。
优选地,所述将所述新创建的java项目的java项目数据同步到zookeeper上面,包括:
通过获取用户在任务创建窗口中创建的java任务、用户在所述任务创建窗口中选择的所述java任务所属的java项目、用户从所述所属java项目下的实例IP中选取的至少一个实例IP,来作为新创建的java任务数据;
获取用户在触发器创建窗口为新创建任务创建的触发规则;
将新创建的java任务数据、及对应的触发规则同步到zookeeper上面。
优选地,所述利用客户端执行所述更新后的java项目数据对应的java任务,包括:
通过客户端定义的bean以利用java反射技术,来执行所述更新后的java项目数据对应的java任务。
优选地,所述方法还包括:
利用客户端执行java任务的过程中,若存在被spring aop拦截的方法且已经为当前方法提供了标示被执行任务状态的注解,则获取与注解类型对应的反映被执行任务状态的相关数据;
将所述获取的相关数据上传至日志管理系统。
优选地,所述被执行任务状态的注解为任务进度注解中的一个和/或任务监控注解中的一个;
所述任务进度注解包括以下一个或多个:
任务开始注解、任务收集数据注解、任务执行注解、任务输出数据注解、任务结束注解;
所述任务监控注解包括以下一个或多个:
方法异常注解、方法参数和返回值注解、方法耗时注解、方法执行前后系统资源使用注解、方法执行前后线程状态注解。
优选地,所述方法还包括:
利用客户端执行java任务的过程中,生成本次任务的任务标识,并按照预设格式在任务管理后台显示所述任务标识。
优选地,所述方法还包括:
若被执行的java任务采用了多线程的运行方式,则采用重载java api的方式,为所述多线程中的每个子线程配置与任务父线程相同的任务标识;
根据所述相同的任务标识同时监测所述多线程中每个子线程的任务进度。
本发明实施例还提供了一种任务监控系统,包括:
数据加载单元,用于利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则;
数据更新单元,用于利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;
任务执行单元,用于利用客户端执行所述更新后的java项目数据对应的java任务。
优选地,所述系统还包括:
标识配置单元,用于在所述数据加载单元利用客户端从zookeeper上面拉取存储的java项目数据前,为每个用户新创建的java项目分配一个项目标识,并将所述项目标识保存到客户端的配置文件中;
数据同步单元,用于将所述新创建的java项目的java项目数据同步到zookeeper上面;
所述数据加载单元包括:
数据拉取子单元,用于利用客户端获取所述配置文件中的项目标识,并从zookeeper上面拉取与所述项目标识对应的java项目数据;
数据加载子单元,用于将所述java项目数据加载到所述客户端所在的设备内存中。
优选地,所述数据同步单元包括:
任务获取子单元,用于通过获取用户在任务创建窗口中创建的java任务、用户在所述任务创建窗口中选择的所述java任务所属的java项目、用户从所述所属java项目下的实例IP中选取的至少一个实例IP,来作为新创建的java任务数据;
规则获取子单元,用于获取用户在触发器创建窗口为新创建任务创建的触发规则;
数据同步子单元,用于将新创建的java任务数据、及对应的触发规则同步到zookeeper上面。
优选地,所述任务执行单元,具体用于通过客户端定义的bean以利用java反射技术,来执行所述更新后的java项目数据对应的java任务。
优选地,所述系统还包括:
状态获取单元,用于利用客户端执行java任务的过程中,若存在被springaop拦截的方法且已经为当前方法提供了标示被执行任务状态的注解,则获取与注解类型对应的反映被执行任务状态的相关数据;
数据上传单元,用于将所述获取的相关数据上传至日志管理系统;
其中,所述被执行任务状态的注解为任务进度注解中的一个和/或任务监控注解中的一个;
所述任务进度注解包括以下一个或多个:
任务开始注解、任务收集数据注解、任务执行注解、任务输出数据注解、任务结束注解;
所述任务监控注解包括以下一个或多个:
方法异常注解、方法参数和返回值注解、方法耗时注解、方法执行前后系统资源使用注解、方法执行前后线程状态注解。
优选地,所述系统还包括:
标识获取单元,用于利用客户端执行java任务的过程中,生成本次任务的任务标识,并按照预设格式在任务管理后台显示所述任务标识。
优选地,所述系统还包括:
标识重写单元,用于若被执行的java任务采用了多线程的运行方式,则采用重载java api的方式,为所述多线程中的每个子线程配置与任务父线程相同的任务标识;
线程监测单元,用于根据所述相同的任务标识同时监测所述多线程中每个子线程的任务进度。
本发明实施例提供的任务监控方法及系统,利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中;利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;利用客户端执行所述更新后的java项目数据对应的java任务。可见,由于java项目数据(任务和触发规则)被修改后,系统会自动将修改的数据同步到zookeeper上面,且利用客户端能够自动获取zookeeper上面的修改数据并对客户端中已经存储的java项目数据进行更新,这样便不必像现有技术那样每次都重启服务,从而实现了自动监控java任务的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例任务监控方法的流程示意图;
图2为本发明实施例项目申请界面示意图;
图3为本发明实施例任务创建窗口示意图;
图4为本发明实施例触发器创建窗口示意图;
图5为本发明实施例项目实例管理页面示意图;
图6为本发明实施例用户权限分配示意图;
图7为本发明实施例任务进度示意图;
图8为本发明实施例任务监控示意图;
图9为本发明实施例任务监控系统的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例前,首先对几个技术术语进行简单的介绍:
zookeeper:属于hadoop的子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
memcached:一种高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。
mysql:一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
aop:面向切面编程,可以理解为面向对象编程的一种补充,本发明实现aop的是通过spring来实现。
htsf:本发明实施例的任务调度框架。
本发明实施例主要分为以下四个工程:
1.htsf-common:基础jar包,存放常亮和公共类。
2.htsf-client:提供给客户端应用使用的jar包,应用开发时候需要配置对应的xml文件,并且需要引入此jar包。
开发客户端应用时,要依赖spring和htsf-client,按照htsf提供的文档进行开发。
3.htsf-admin:管理后台,提供任务管理与任务可视化页面监控功能。
管理后台htsf-admin通过html5+jquery做前端页面展示,通过jquery封装ajxa技术来实现无刷新动态获取数据,通过jstl+spring mvc做web数据控制,通过spring来管理这个系统,通过mybatis与数据库通信,缓存使用memcached,通过自定义注解和spring aop实现面向切面的缓存管理。
4.htsf-log-admin:日志管理后台,提供接收日志并且放入数据源功能。
参见图1,为本发明实施例提供的任务监控方法的流程示意图,该方法包括以下步骤:
步骤101:利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则。
在本步骤中,需要从zookeeper上面拉取java项目数据,为了实现此功能,需要在步骤101前将java项目数据存储到zookeeper上面,即在步骤101前还可以包括以下步骤:
为每个用户新创建的java项目分配一个项目标识,并将所述项目标识保存到客户端的配置文件中;将所述新创建的java项目的java项目数据同步到zookeeper上面。更具体的,该步骤的实现过程如下:
用户进入后台系统htsf-admin后,需要先创建java项目,参见图2所示的项目申请界面示意图,创建java项目后,后台系统会为刚创建的java项目分配唯一的项目标识,即项目ID,并保存项目ID到客户端应用的配置文件中。创建了一个java项目后,后台系统会自动将java项目同步到缓存memcached、数据库mysql、以及zookeeper上面。
在创建了java项目后,还要创建java项目下的java任务和触发器,具体按照下述方式创建java任务和触发器:
参见图3所示的任务创建窗口示意图。在图3中输入任务名称、任务入口、任务描述后,并在任务所属项目的下拉菜单中选取该任务所属的java项目,选择项目后,会自动加载出来项目下面的实例IP(Internet Protocol,网际协议),可以勾选希望生效的实例IP,譬如,假设10.16.15.102的实例IP对应测试机,10.7.40.57的实例IP对应线上机,若希望只在测试机上运行任务,则勾选10.16.15.102。任务创建完后,可以在任务下面创建触发器,目前支持简单触发器和复杂触发器,一个任务只能配置一个触发器,参见图4所示的触发器创建窗口示意图。待任务及触发器创建完毕后,这些数据会直接被同步到zookeeper上面,因此,当同一个project的不同instance想要不同的java任务和触发规则的时候,由于任务数据及触发规则会被直接同步到zookeeper上面,所以客户端可以自动从zookeeper上面直接拉取数据并存入内存,而不必像现有技术那样每次发布project时都更改xml配置文件中的配置。基于上述内容,本发明实施例可以按照下述方式将所述新创建的java项目的java项目数据(任务数据及触发规则)同步到zookeeper上面:
通过获取用户在任务创建窗口中创建的java任务、用户在所述任务创建窗口中选择的所述java任务所属的java项目、用户从所述所属java项目下的实例IP中选取的至少一个实例IP,来作为新创建的java任务数据;获取用户在触发器创建窗口为新创建任务创建的触发规则;将新创建的java任务数据、及对应的触发规则同步到zookeeper上面。
当客户端启动后,会通过客户端配置的项目ID从zookeeper上获取与项目ID对应的java项目数据,并将获取的数据存储在客户端所在的设备内存中,其中,客户端所在的设备可以通过设备本机IP来区分。基于此,在步骤101中,客户端可以按照以下方式从zookeeper上面拉取java项目数据,即:利用客户端获取所述配置文件中的项目标识,并从zookeeper上面拉取与所述项目标识对应的java项目数据。
此外,本发明实施例能够更方便的对项目及其实例进行管理,参见图5所示的项目实例管理页面示意图,用户可以对项目进行增加、删除、修改、禁用等操作,也可以查看项目下面的实例,在项目下面可以进行创建实例、修改实例、禁用实例等操作,也可以查询实例下面对应的任务,比如远程zookeeper定时任务数据。另外,本发明实施例还可以对用户使用权限进行分配,参见图6所示的用户权限分配示意图,从该界面可以查看拥有项目使用权限的用户,并且可以对项目权限进行增减。
步骤102:利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据。
当用户修改project(java项目)、instance(实例)、task(java任务)、trigger(触发器)的相关数据后,程序会自动将修改内容更新同步到缓存memcached和数据库mysql中,同时也会更新到zookeeper对应的目录中,目录的具体格式为prefix+project_id+instance_ip_+task_entrance+trigger,其中,prefix为前缀。客户端在启动后会实时监听zookeeper目录,即加载上述的目录数据(instance_ip下的task_entrance和trigger)并监听目录是否变化,当在后台对java项目数据进行修改后,zookeeper会通知监听zookeeper目录的客户端,客户端得到变更的数据,会重新初始化内存数据。
步骤103:利用客户端执行所述更新后的java项目数据对应的java任务。
当触发器满足触发条件时,客户端就会执行对应的任务,具体的,任务数据加载到客户端内存后,框架htsf会通过客户端应用定义的bean通过java反射技术来执行java任务,具体根据用户定义区分有状态的任务和无状态任务(有状态任务会等待上次任务执行完成再执行,无状态任务会发现上次任务未执行完也会执行)。因此,步骤103具体可通过客户端定义的bean以利用java反射技术,来执行所述更新后的java项目数据对应的java任务。
本发明实施例提供的任务监控方法,利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中;利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;利用客户端执行所述更新后的java项目数据对应的java任务。可见,由于java项目数据(任务和触发规则)被修改后,系统会自动将修改的数据同步到zookeeper上面,且利用客户端能够自动获取zookeeper上面的修改数据并对客户端中已经存储的java项目数据进行更新,这样便不必像现有技术那样每次都重启服务,从而实现了自动监控java任务的目的。
另外,本发明实施例还具有以下各功能:
java任务执行中,如果经过被spring aop拦截的方法,客户端会判断当前方法是否有htsf-client提供的注解功能,如果有,会分析注解类型并且获取数据,不同注解可获取不同类型的数据,然后,通过管理后台http-client上报数据至日志管理系统htsf-log-admin,日志管理系统接收日志并同步到数据源中。基于此,本发明实施例还包括以下步骤:利用客户端执行java任务的过程中,若存在被spring aop拦截的方法且已经为当前方法提供了标示被执行任务状态的注解,则获取与注解类型对应的反映被执行任务状态的相关数据;将所述获取的相关数据上传至日志管理系统。
因此,开发客户端时,可以灵活使用htsf提供的注解,htsf通过拦截事件,来分析被拦截事件的注解类型,对事件进行分析并将分析结果上报至日志管理系统,日志管理系统接收上报数据并同步到memcached和mysql中,这样用户可以通过管理后台查询上报数据,这些数据是从mysql和memcached中获取并展现的。
其中,所述被执行任务状态的注解为任务进度注解中的一个和/或任务监控注解中的一个;
本发明实施例通过应用客户端注解的注释不同来标示任务进度,任务进度注解包括以下一个或多个:
@TaskBegin 任务开始注解,每个任务的入口方法必须有此注解;
@TaskInputData 任务收集数据注解;
@TaskExecute 任务执行注解;
@TaskOutData 任务输出数据注解;
@TaskEnd 任务结束注解。
为便于理解,参见图7所示的任务进度示意图,其中,图中粗线条代表任务进度条。
本发明实施例还通过应用客户端注解的注释不同来监控任务,任务监控注解包括以下一个或多个:
@MonitorAlarm 方法异常注解;
@MonitorParamAndResult 方法参数和返回值注解;
@MonitorPerformance 方法耗时注解;
@MonitorTaskUseResource 方法执行前后系统资源使用注解;
@MonitorThreadStatus 方法执行前后线程状态注解。
为便于理解,参见图8所示的任务监控示意图,其中,图中粗线条代表任务进度条。
此外,任务执行时,会生成唯一的任务标识task ID(不同任务的task ID不同、且同一任务在每次执行时生成的task ID也不同),通过此task ID来标识本次任务被执行,可将任务的相关数据(包括task ID)通过一定格式显示到任务管理后台。基于此,本发明实施例还包括以下步骤:利用客户端执行java任务的过程中,生成本次任务的任务标识,并按照预设格式在任务管理后台显示所述任务标识。
如果任务中使用了多线程,那么需要采用重载java api的方法,该重载方法让该任务中的各个子线程拥有的task ID与该任务父线程的task ID相同,通过标识相同的task ID,能够保证对任务中的各个子线程进行同时监测。基于此,本发明实施例还包括以下步骤:若被执行的java任务采用了多线程的运行方式,则采用重载java api的方式,为所述多线程中的每个子线程配置与任务父线程相同的任务标识;根据所述相同的任务标识同时监测所述多线程中每个子线程的任务进度。
参见图9,为本发明实施例提供的任务监控系统的组成示意图,该系统包括:
数据加载单元901,用于利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则;
数据更新单元902,用于利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;
任务执行单元903,用于利用客户端执行所述更新后的java项目数据对应的java任务。
所述系统还包括:
标识配置单元,用于在所述数据加载单元901利用客户端从zookeeper上面拉取存储的java项目数据前,为每个用户新创建的java项目分配一个项目标识,并将所述项目标识保存到客户端的配置文件中;数据同步单元,用于将所述新创建的java项目的java项目数据同步到zookeeper上面;
所述数据加载单元901包括:
数据拉取子单元,用于利用客户端获取所述配置文件中的项目标识,并从zookeeper上面拉取与所述项目标识对应的java项目数据;数据加载子单元,用于将所述java项目数据加载到所述客户端所在的设备内存中。
其中,所述数据同步单元包括:
任务获取子单元,用于通过获取用户在任务创建窗口中创建的java任务、用户在所述任务创建窗口中选择的所述java任务所属的java项目、用户从所述所属java项目下的实例IP中选取的至少一个实例IP,来作为新创建的java任务数据;规则获取子单元,用于获取用户在触发器创建窗口为新创建任务创建的触发规则;数据同步子单元,用于将新创建的java任务数据、及对应的触发规则同步到zookeeper上面。
所述任务执行单元903,具体用于通过客户端定义的bean以利用java反射技术,来执行所述更新后的java项目数据对应的java任务。
所述系统还包括:
状态获取单元,用于利用客户端执行java任务的过程中,若存在被springaop拦截的方法且已经为当前方法提供了标示被执行任务状态的注解,则获取与注解类型对应的反映被执行任务状态的相关数据;数据上传单元,用于将所述获取的相关数据上传至日志管理系统;
其中,所述被执行任务状态的注解为任务进度注解中的一个和/或任务监控注解中的一个;
所述任务进度注解包括以下一个或多个:
任务开始注解、任务收集数据注解、任务执行注解、任务输出数据注解、任务结束注解;
所述任务监控注解包括以下一个或多个:
方法异常注解、方法参数和返回值注解、方法耗时注解、方法执行前后系统资源使用注解、方法执行前后线程状态注解。
所述系统还包括:
标识获取单元,用于利用客户端执行java任务的过程中,生成本次任务的任务标识,并按照预设格式在任务管理后台显示所述任务标识。
所述系统还包括:
标识重写单元,用于若被执行的java任务采用了多线程的运行方式,则采用重载java api的方式,为所述多线程中的每个子线程配置与任务父线程相同的任务标识;线程监测单元,用于根据所述相同的任务标识同时监测所述多线程中每个子线程的任务进度。
本发明实施例提供的任务监控系统,由于java项目数据(任务和触发规则)被修改后,系统会自动将修改的数据同步到zookeeper上面,且利用客户端能够自动获取zookeeper上面的修改数据并对客户端中已经存储的java项目数据进行更新,这样便不必像现有技术那样每次都重启服务,从而实现了自动监控java任务的目的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种任务监控方法,其特征在于,包括:
利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则;
利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;
利用客户端执行所述更新后的java项目数据对应的java任务。
2.根据权利要求1所述的方法,其特征在于,所述利用客户端从zookeeper上面拉取存储的java项目数据前,还包括:
为每个用户新创建的java项目分配一个项目标识,并将所述项目标识保存到客户端的配置文件中;
将所述新创建的java项目的java项目数据同步到zookeeper上面;
所述利用客户端从zookeeper上面拉取存储的java项目数据,包括:
利用客户端获取所述配置文件中的项目标识,并从zookeeper上面拉取与所述项目标识对应的java项目数据。
3.根据权利要求2所述的方法,其特征在于,所述将所述新创建的java项目的java项目数据同步到zookeeper上面,包括:
通过获取用户在任务创建窗口中创建的java任务、用户在所述任务创建窗口中选择的所述java任务所属的java项目、用户从所述所属java项目下的实例IP中选取的至少一个实例IP,来作为新创建的java任务数据;
获取用户在触发器创建窗口为新创建任务创建的触发规则;
将新创建的java任务数据、及对应的触发规则同步到zookeeper上面。
4.根据权利要求1所述的方法,其特征在于,所述利用客户端执行所述更新后的java项目数据对应的java任务,包括:
通过客户端定义的bean以利用java反射技术,来执行所述更新后的java项目数据对应的java任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用客户端执行java任务的过程中,若存在被spring aop拦截的方法且已经为当前方法提供了标示被执行任务状态的注解,则获取与注解类型对应的反映被执行任务状态的相关数据;
将所述获取的相关数据上传至日志管理系统。
6.根据权利要求5所述的方法,其特征在于,所述被执行任务状态的注解为任务进度注解中的一个和/或任务监控注解中的一个;
所述任务进度注解包括以下一个或多个:
任务开始注解、任务收集数据注解、任务执行注解、任务输出数据注解、任务结束注解;
所述任务监控注解包括以下一个或多个:
方法异常注解、方法参数和返回值注解、方法耗时注解、方法执行前后系统资源使用注解、方法执行前后线程状态注解。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
利用客户端执行java任务的过程中,生成本次任务的任务标识,并按照预设格式在任务管理后台显示所述任务标识。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若被执行的java任务采用了多线程的运行方式,则采用重载java api的方式,为所述多线程中的每个子线程配置与任务父线程相同的任务标识;
根据所述相同的任务标识同时监测所述多线程中每个子线程的任务进度。
9.一种任务监控系统,其特征在于,包括:
数据加载单元,用于利用客户端从zookeeper上面拉取存储的java项目数据,并将所述java项目数据加载到所述客户端所在的设备内存中,所述java项目数据包括java任务数据及与java任务对应的触发规则;
数据更新单元,用于利用客户端监听zookeeper目录,若通过监听zookeeper目录获取到zookeeper下发的关于所述java项目数据被修改的通知,则利用被修改的java项目数据更新所述设备内存中的java项目数据;
任务执行单元,用于利用客户端执行所述更新后的java项目数据对应的java任务。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括:
标识配置单元,用于在所述数据加载单元利用客户端从zookeeper上面拉取存储的java项目数据前,为每个用户新创建的java项目分配一个项目标识,并将所述项目标识保存到客户端的配置文件中;
数据同步单元,用于将所述新创建的java项目的java项目数据同步到zookeeper上面;
所述数据加载单元包括:
数据拉取子单元,用于利用客户端获取所述配置文件中的项目标识,并从zookeeper上面拉取与所述项目标识对应的java项目数据;
数据加载子单元,用于将所述java项目数据加载到所述客户端所在的设备内存中。
11.根据权利要求10所述的系统,其特征在于,所述数据同步单元包括:
任务获取子单元,用于通过获取用户在任务创建窗口中创建的java任务、用户在所述任务创建窗口中选择的所述java任务所属的java项目、用户从所述所属java项目下的实例IP中选取的至少一个实例IP,来作为新创建的java任务数据;
规则获取子单元,用于获取用户在触发器创建窗口为新创建任务创建的触发规则;
数据同步子单元,用于将新创建的java任务数据、及对应的触发规则同步到zookeeper上面。
12.根据权利要求9所述的系统,其特征在于,所述任务执行单元,具体用于通过客户端定义的bean以利用java反射技术,来执行所述更新后的java项目数据对应的java任务。
13.根据权利要求9所述的系统,其特征在于,所述系统还包括:
状态获取单元,用于利用客户端执行java任务的过程中,若存在被springaop拦截的方法且已经为当前方法提供了标示被执行任务状态的注解,则获取与注解类型对应的反映被执行任务状态的相关数据;
数据上传单元,用于将所述获取的相关数据上传至日志管理系统;
其中,所述被执行任务状态的注解为任务进度注解中的一个和/或任务监控注解中的一个;
所述任务进度注解包括以下一个或多个:
任务开始注解、任务收集数据注解、任务执行注解、任务输出数据注解、任务结束注解;
所述任务监控注解包括以下一个或多个:
方法异常注解、方法参数和返回值注解、方法耗时注解、方法执行前后系统资源使用注解、方法执行前后线程状态注解。
14.根据权利要求9至13任一项所述的系统,其特征在于,所述系统还包括:
标识获取单元,用于利用客户端执行java任务的过程中,生成本次任务的任务标识,并按照预设格式在任务管理后台显示所述任务标识。
15.根据权利要求14所述的系统,其特征在于,所述系统还包括:
标识重写单元,用于若被执行的java任务采用了多线程的运行方式,则采用重载java api的方式,为所述多线程中的每个子线程配置与任务父线程相同的任务标识;
线程监测单元,用于根据所述相同的任务标识同时监测所述多线程中每个子线程的任务进度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410380550.0A CN104092591B (zh) | 2014-08-04 | 一种任务监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410380550.0A CN104092591B (zh) | 2014-08-04 | 一种任务监控方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092591A true CN104092591A (zh) | 2014-10-08 |
CN104092591B CN104092591B (zh) | 2018-02-09 |
Family
ID=
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363303A (zh) * | 2014-11-28 | 2015-02-18 | 东莞中国科学院云计算产业技术创新与育成中心 | 异步缓存数据同步的方法 |
CN105677326A (zh) * | 2015-12-28 | 2016-06-15 | 国云科技股份有限公司 | 一种软件接口参数验证方法 |
CN106254346A (zh) * | 2016-08-03 | 2016-12-21 | 广州唯品会信息科技有限公司 | 安全策略更新方法及系统 |
CN106685738A (zh) * | 2017-02-22 | 2017-05-17 | 广东网金控股股份有限公司 | 一种net项目的配置项的维护方法和维护系统 |
CN106789170A (zh) * | 2016-11-28 | 2017-05-31 | 北京奇虎科技有限公司 | 一种任务处理方法和装置 |
CN107104970A (zh) * | 2017-04-27 | 2017-08-29 | 努比亚技术有限公司 | 一种规则同步处理方法、系统、规则服务器及灰度服务器 |
CN107423121A (zh) * | 2017-05-02 | 2017-12-01 | 千寻位置网络有限公司 | Gnss精密后处理任务的调度系统及方法 |
CN107451046A (zh) * | 2016-05-30 | 2017-12-08 | 腾讯科技(深圳)有限公司 | 一种检测线程的方法及终端 |
CN107463391A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 任务处理方法、装置及设备 |
CN108399095A (zh) * | 2017-02-04 | 2018-08-14 | 北京京东尚科信息技术有限公司 | 支持动态管理定时任务的方法、系统、设备和存储介质 |
CN108427600A (zh) * | 2018-01-24 | 2018-08-21 | 平安科技(深圳)有限公司 | 数据任务处理方法、应用服务器及计算机可读存储介质 |
CN109194538A (zh) * | 2018-08-03 | 2019-01-11 | 平安科技(深圳)有限公司 | 基于分布式协调的测试方法、装置、服务器及存储介质 |
CN109213792A (zh) * | 2018-07-06 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 数据处理的方法、服务端、客户端、装置及可读存储介质 |
CN109586948A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 更新系统配置数据的方法、装置、计算机设备和存储介质 |
CN109885414A (zh) * | 2019-02-21 | 2019-06-14 | 北京宝兰德软件股份有限公司 | 基于ZooKeeper的分布式事件通知方法及装置 |
CN109993569A (zh) * | 2018-02-09 | 2019-07-09 | 上海长晓网络科技有限公司 | 一种商圈管理系统及其方法 |
CN110019059A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种定时同步的方法和装置 |
CN112214495A (zh) * | 2020-10-22 | 2021-01-12 | 上海亿保健康管理有限公司 | 数据执行跟踪方法、装置和设备 |
CN114785861A (zh) * | 2022-06-22 | 2022-07-22 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731312A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 对远程方法调用的服务进行故障检查的方法和装置 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731312A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 对远程方法调用的服务进行故障检查的方法和装置 |
Non-Patent Citations (3)
Title |
---|
MAN1900,: ""利用Spring AOP与JAVA注解为系统增加日志功能"", 《HTTP://MAN1900.ITEYE.COM/BLOG/648107》 * |
THE APACHE SOFTWARE FOUNDATION,: ""ZooKeeper 3.4 Documentation"", 《HTTP://ZOOKEEPER.APACHE.ORG/DOC/R3.4.3/》 * |
三分球很准真的,: ""zookeeper应用——集中配置管理系统的实现"", 《HTTP://BLOG.CSDN.NET/HUANGFENGXIAO/ARTICLE/DETAILS/8844239》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363303A (zh) * | 2014-11-28 | 2015-02-18 | 东莞中国科学院云计算产业技术创新与育成中心 | 异步缓存数据同步的方法 |
CN105677326B (zh) * | 2015-12-28 | 2019-03-22 | 国云科技股份有限公司 | 一种软件接口参数验证方法 |
CN105677326A (zh) * | 2015-12-28 | 2016-06-15 | 国云科技股份有限公司 | 一种软件接口参数验证方法 |
CN107451046A (zh) * | 2016-05-30 | 2017-12-08 | 腾讯科技(深圳)有限公司 | 一种检测线程的方法及终端 |
CN107463391A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 任务处理方法、装置及设备 |
CN106254346A (zh) * | 2016-08-03 | 2016-12-21 | 广州唯品会信息科技有限公司 | 安全策略更新方法及系统 |
CN106254346B (zh) * | 2016-08-03 | 2019-04-19 | 广州品唯软件有限公司 | 安全策略更新方法及系统 |
CN106789170A (zh) * | 2016-11-28 | 2017-05-31 | 北京奇虎科技有限公司 | 一种任务处理方法和装置 |
CN108399095A (zh) * | 2017-02-04 | 2018-08-14 | 北京京东尚科信息技术有限公司 | 支持动态管理定时任务的方法、系统、设备和存储介质 |
CN106685738A (zh) * | 2017-02-22 | 2017-05-17 | 广东网金控股股份有限公司 | 一种net项目的配置项的维护方法和维护系统 |
CN106685738B (zh) * | 2017-02-22 | 2019-11-12 | 广东网金控股股份有限公司 | 一种net项目的配置项的维护方法和维护系统 |
CN107104970A (zh) * | 2017-04-27 | 2017-08-29 | 努比亚技术有限公司 | 一种规则同步处理方法、系统、规则服务器及灰度服务器 |
CN107423121B (zh) * | 2017-05-02 | 2020-12-01 | 千寻位置网络有限公司 | Gnss精密后处理任务的调度系统及方法 |
CN107423121A (zh) * | 2017-05-02 | 2017-12-01 | 千寻位置网络有限公司 | Gnss精密后处理任务的调度系统及方法 |
CN110019059B (zh) * | 2017-12-04 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 一种定时同步的方法和装置 |
CN110019059A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种定时同步的方法和装置 |
CN108427600B (zh) * | 2018-01-24 | 2021-03-16 | 平安科技(深圳)有限公司 | 数据任务处理方法、应用服务器及计算机可读存储介质 |
CN108427600A (zh) * | 2018-01-24 | 2018-08-21 | 平安科技(深圳)有限公司 | 数据任务处理方法、应用服务器及计算机可读存储介质 |
CN109993569A (zh) * | 2018-02-09 | 2019-07-09 | 上海长晓网络科技有限公司 | 一种商圈管理系统及其方法 |
CN109213792A (zh) * | 2018-07-06 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 数据处理的方法、服务端、客户端、装置及可读存储介质 |
CN109194538B (zh) * | 2018-08-03 | 2022-03-25 | 平安科技(深圳)有限公司 | 基于分布式协调的测试方法、装置、服务器及存储介质 |
WO2020024405A1 (zh) * | 2018-08-03 | 2020-02-06 | 平安科技(深圳)有限公司 | 基于分布式协调的测试方法、装置、服务器及存储介质 |
CN109194538A (zh) * | 2018-08-03 | 2019-01-11 | 平安科技(深圳)有限公司 | 基于分布式协调的测试方法、装置、服务器及存储介质 |
CN109586948A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 更新系统配置数据的方法、装置、计算机设备和存储介质 |
CN109885414A (zh) * | 2019-02-21 | 2019-06-14 | 北京宝兰德软件股份有限公司 | 基于ZooKeeper的分布式事件通知方法及装置 |
CN112214495A (zh) * | 2020-10-22 | 2021-01-12 | 上海亿保健康管理有限公司 | 数据执行跟踪方法、装置和设备 |
CN112214495B (zh) * | 2020-10-22 | 2023-08-22 | 上海亿保健康管理有限公司 | 数据执行跟踪方法、装置和设备 |
CN114785861A (zh) * | 2022-06-22 | 2022-07-22 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
CN114785861B (zh) * | 2022-06-22 | 2022-12-13 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110768833B (zh) | 基于kubernetes的应用编排部署方法及装置 | |
CN110310034B (zh) | 一种应用于SaaS的服务编排、业务流程处理方法和装置 | |
US11121921B2 (en) | Dynamic auto-configuration of multi-tenant PaaS components | |
KR101891506B1 (ko) | 하나 이상의 클라우드 시스템 상에 애플리케이션들을 이식 가능하게 배치하기 위한 방법들 및 시스템들 | |
US10929173B2 (en) | Design-time information based on run-time artifacts in a distributed computing cluster | |
US9135093B2 (en) | Event-driven approach for collecting monitoring data of messaging systems | |
WO2019000630A1 (zh) | 多任务调度方法、系统、应用服务器及计算机可读存储介质 | |
CN109669976B (zh) | 基于etl的数据服务方法及设备 | |
CN107992537B (zh) | 业务属性传递方法、装置、计算机设备及存储介质 | |
CN108932157B (zh) | 分布式处理任务的方法、系统、电子设备和可读介质 | |
US20170146980A1 (en) | Method and system of dynamically configuring functions of machine | |
US20210218657A1 (en) | Centralized, scalable, resource monitoring system | |
CN108156030B (zh) | 一种配置策略同步的方法及装置 | |
CN108399095B (zh) | 支持动态管理定时任务的方法、系统、设备和存储介质 | |
WO2019223178A1 (zh) | 跨平台任务调度方法、系统、计算机设备和存储介质 | |
CN113094053B (zh) | 产品的交付方法及装置、计算机存储介质 | |
US20080250034A1 (en) | External metadata acquisition and synchronization in a content management system | |
US20230239212A1 (en) | Stable References for Network Function Life Cycle Management Automation | |
US20230319054A1 (en) | Tenant-specific solution subscriptions for an extensibility platform | |
US20200073727A1 (en) | Scheduling software jobs having dependencies | |
CN110580216B (zh) | 一种应用提测的方法和装置 | |
CN115455121A (zh) | 一种实时可靠的数据同步传输方法、设备及介质 | |
CN104092591A (zh) | 一种任务监控方法及系统 | |
CN114035923A (zh) | 一种基于DolphinScheduler的任务调度方法、系统、设备以及介质 | |
JP2018205962A (ja) | 資産管理装置及び資産管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |