本公开涉及数据处理,尤其涉及一种数据处理方法、装置和电子设备。
背景技术:
1、quartz是一款比较常用的定时任务框架,是由计算机编程语言java实现的。使用方便快捷,通过集成jar(java archive)包和按要求创建数据库表即可实现定时任务的运行。quartz的整体架构如附图的图1所示,quartz通过jobdetail类将任务的信息写入到数据库中的任务明细表(detail)和任务触发表(trigger)中;scheduler线程轮询这些表去判断是否有要执行的定时任务。当定时任务数量过多,或者同一时刻要执行的任务数量过多时,quartz就会因为任务数量过多产生性能问题,影响业务。
技术实现思路
1、为了解决上述技术问题,本公开提供了一种数据处理方法、装置和电子设备。
2、本公开的技术方案如下:
3、第一方面,本公开提供一种服务器,包括至少一个用于进行任务调度的调度器和至少一个用于执行调度器下发的定时任务的执行器的定时框架,一个调度器对应一个节点、一个执行器对应一个节点,包括:调度器,被配置为基于当前时刻和数据库中的任务触发表,确定当前时刻需要执行的任务集合的集合标识;调度器,被配置为基于集合标识和数据库中的任务明细表,确定集合标识对应的实现类的类名;调度器,被配置为基于类名,创建类名对应的运行环境;调度器,被配置为在运行环境下,基于集合标识和数据库中的子任务列表,确定集合标识对应的子任务列表,子任务列表中存储了当前时刻需要执行的每个定时任务的任务信息;调度器,被配置为在运行环境下,基于子任务列表,向每个执行器分发任务信息。
4、第二方面,本公开提供一种数据处理方法,应用于包括至少一个用于进行任务调度的调度器和至少一个用于执行调度器下发的定时任务的执行器的定时框架,一个调度器对应一个节点、一个执行器对应一个节点,包括:调度器基于当前时刻和数据库中的任务触发表,确定当前时刻需要执行的任务集合的集合标识;调度器基于集合标识和数据库中的任务明细表,确定集合标识对应的实现类的类名;调度器基于类名,创建类名对应的运行环境;调度器在运行环境下,基于集合标识和数据库中的子任务列表,确定集合标识对应的子任务列表,子任务列表中存储了当前时刻需要执行的每个定时任务的任务信息;调度器在运行环境下,基于子任务列表,向每个执行器分发任务信息。
5、第三方面,本公开提供一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在执行计算机程序时,使得电子设备实现如第二方面提供的任一项的数据处理方法。
6、第四方面,本发明提供一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行如第二方面提供的任一项的数据处理方法。
7、第五方面,本发明提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第二方面提供的任一项的数据处理方法。
8、需要说明的是,上述计算机指令可以全部或者部分存储在第一计算机可读存储介质上。其中,第一计算机可读存储介质可以与服务器的处理器封装在一起的,也可以与服务器的处理器单独封装,本公开对此不作限定。
9、本公开中第二方面、第三方面、第四方面以及第五方面的描述,可以参考第一方面的详细描述;并且,第二方面、第三方面、第四方面以及第五方面的描述的有益效果,可以参考第一方面的有益效果分析,此处不再赘述。
10、在本公开中,上述服务器的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本公开类似,属于本公开权利要求及其等同技术的范围之内。
11、本公开的这些方面或其他方面在以下的描述中会更加简明易懂。
12、本公开提供的技术方案与现有技术相比具有如下优点:
13、本公开提供的数据处理方法,服务器的定时框架的调度器基于当前时刻和数据库中的任务触发表,确定当前时刻需要执行的任务集合的集合标识。可以看出,此时数据库仅返回一个集合标识,而不是任务本身(需要执行的所有任务),从而可以大大降低对定时框架的资源的占用。同时,调度器基于集合标识和数据库中的任务明细表,确定集合标识对应的实现类的类名。调度器基于类名,创建类名对应的运行环境。调度器在运行环境下,基于集合标识和数据库中的子任务列表,确定集合标识对应的子任务列表;调度器在运行环境下,基于子任务列表,向每个执行器分发任务信息。如此,调度器无需执行当前时刻需要执行的每个定时任务,而是将任务下发给执行器执行,这样可以提升调度器的执行效率高,解决了定时任务数量过多,或者同一时刻要执行的任务数量过多时,quartz就会因为任务数量过多产生性能问题。
1.一种服务器,其特征在于,包括至少一个用于进行任务调度的调度器和至少一个用于执行所述调度器下发的定时任务的执行器的定时框架,一个所述调度器对应一个节点、一个所述执行器对应一个节点,包括:
2.根据权利要求1所述的服务器,其特征在于,所述执行器,被配置为按照所述任务信息执行完对应的任务信息后,向业务服务服务器发送任务回调信息。
3.根据权利要求1所述的服务器,其特征在于,所述调度器,还被配置为接收所述业务服务服务器发送的注册信息;其中,所述注册信息用于指示在目标时刻执行的目标任务;
4.根据权利要求3所述的服务器,其特征在于,所述调度器,进一步被配置为基于所述注册信息,确定所述目标任务的总数量和子任务列表中包含的定时任务的总数量之和大于或等于预设阈值时,将所述目标任务添加至所述子任务列表,得到更新后的子任务列表;
5.根据权利要求4所述的服务器,其特征在于,所述调度器采用异步通知的方式与所述执行器进行通信。
6.根据权利要求3所述的服务器,其特征在于,所述调度器,进一步被配置为基于所述注册信息,确定所述目标任务的总数量和子任务列表中包含的定时任务的总数量之和小于预设阈值时,将所述目标任务添加至所述子任务列表。
7.根据权利要求6所述的服务器,其特征在于,所述调度器和所述执行器之间通过目标协议进行通信;其中,所述目标协议包括超文本传输协议和远程调用协议中的任一项。
8.一种数据处理方法,其特征在于,应用于包括至少一个用于进行任务调度的调度器和至少一个用于执行所述调度器下发的定时任务的执行器的定时框架,一个所述调度器对应一个节点、一个所述执行器对应一个节点,包括:
9.根据权利要求8所述的数据处理方法,其特征在于,所述方法还包括:
10.一种计算机可读存储介质,其特征在于,包括:所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现权利要求8或9所述的数据处理方法。
