The embodiment of the present invention provides a timing task execution method, a distributed server cluster and an electronic device. The method includes that a first server in a distributed server cluster obtains a timing task creation request; a first server converts a timing task creation request into a task creation message according to a timing task creation request, and publishes a task creation to a message queue. Messages; Some or all servers in a distributed server cluster get task creation messages from message queues; After some or all servers get task creation messages, they create timing tasks according to task creation messages; When a timing task is triggered, some or all servers try to obtain distributed locks from the preset storage location; Some or all servers succeed in obtaining distributed locks from the preset storage location; Some or all servers succeed in obtaining task creation messages. A second server with a distributed lock performs a timing task. Because there is no need to specify a fixed server to receive timing tasks, the complexity of creating or configuring timing tasks is reduced.
【技术实现步骤摘要】
一种定时任务执行方法、分布式服务器集群及电子设备
本专利技术涉及计算机
,特别是涉及一种定时任务执行方法、分布式服务器集群及电子设备。
技术介绍
随着计算机技术的高速发展,对于数据处理的自动化程度也越来越高,例如在企业级管理系统中十分常见的定时任务。定时任务是指服务器在预设的时刻或者按固定的周期自动执行的程序,例如,对数据按固定周期进行筛选等处理。定时任务在单一服务器环境中,其实现方式比较简单。一般来说,首先会通过一个配置管理界面对定时任务进行管理,包括配置任务的执行类,触发时刻及周期,有效时间等。任务配置完毕后,服务器会自动启动一个线程或进程使任务在指定的触发时刻或按周期执行。随着所需处理的业务量越来越大,单服务器模式越来越不能满足服务的需要,所以为了应对这种情况,服务器采用了集群的工作模式。集群是以复制的方式部署的多台服务器,并通过专门的负载均衡器使用负载均衡算法实现对集群中服务器的调用,使得通过分布式的集群系统来应对大量的数据处理业务。然而,现有技术中,当定时任务在集群环境下进行实现时,集群中可以固定某一台服务器来接收任务,然而固定一台服务器接收定时任 ...
【技术保护点】
1.一种定时任务执行方法,其特征在于,应用于分布式服务器集群,包括:分布式服务器集群中的一台第一服务器获得定时任务创建请求;所述第一服务器根据所述定时任务创建请求,将所述定时任务创建请求转换为任务创建消息,并向消息队列发布所述任务创建消息;所述分布式服务器集群中的部分或全部服务器从所述消息队列获得所述任务创建消息;所述部分或全部服务器获得所述任务创建消息后,所述部分或全部服务器根据所述任务创建消息各自创建定时任务;当所述定时任务被触发时,所述部分或全部服务器尝试从预设存储位置获取分布式锁;所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器执行所述定时任务。
【技术特征摘要】
1.一种定时任务执行方法,其特征在于,应用于分布式服务器集群,包括:分布式服务器集群中的一台第一服务器获得定时任务创建请求;所述第一服务器根据所述定时任务创建请求,将所述定时任务创建请求转换为任务创建消息,并向消息队列发布所述任务创建消息;所述分布式服务器集群中的部分或全部服务器从所述消息队列获得所述任务创建消息;所述部分或全部服务器获得所述任务创建消息后,所述部分或全部服务器根据所述任务创建消息各自创建定时任务;当所述定时任务被触发时,所述部分或全部服务器尝试从预设存储位置获取分布式锁;所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器执行所述定时任务。2.根据权利要求1所述的方法,其特征在于,所述分布式服务器集群中的一台第一服务器获得定时任务创建请求,包括:所述分布式服务器集群中的一台第一服务器从负载均衡器获得定时任务创建请求,所述负载均衡器用于通过负载均衡算法向分布式服务器集群中的各服务器分配各类任务。3.根据权利要求1所述的方法,其特征在于,在所述第一服务器根据所述定时任务创建请求,将所述定时任务创建请求转换为任务创建消息,并向消息队列发布所述任务创建消息之前,所述方法还包括:所述分布式服务器集群中的部分或全部服务器订阅消息队列的消息。4.根据权利要求1所述的方法,其特征在于,在所述部分或全部服务器根据所述任务创建消息各自创建定时任务之后,所述方法还包括:所述分布式服务器集群中的一台第三服务器获得定时任务控制请求,所述定时任务控制请求至少包括以下请求中的一种或多种:定时任务暂停请求、定时任务重启请求、定时任务依赖请求;所述第三服务器根据所述定时任务控制请求,将所述定时任务控制请求转换为任务控制消息,并向所述消息队列发布所述任务控制消息;所述部分或全部服务器从所述消息队列获得所述任务控制消息;所述部分或全部服务器获得所述任务控制消息后,根据所述任务控制消息,对所述定时任务进行处理。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器执行所述定时任务,包括:当所述部分或全部服务器中的一台第二服务器成功获得所述分布式锁时,所述第二服务器查看执行日志;当所述执行日志中没有记录所述定时任务的执行时刻,或所记录的所述定时任务的执行时刻与当前时刻的差值大于或等于预设阈值时,所述第二服务器执行所述定时任务。6.根据权利要求5所述的方法,其特征在于,在所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器执行所述定时任务之后,所述方法还包括:第二服务器在所述执行日志中添加所述定时任务的执行时刻,或更新所述执行日志中所述定时任务的执行时刻。7.根据权利要求1至4中任一项所述的方法,其特征在于,所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器执行所述定时任务,包括:所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器从关系数据库中获得所述定时任务的任务内容;所述第二服务器针对所述任务内容执行所述定时任务。8.根据权利要求1所述的方法,其特征在于,在所述部分或全部服务器中成功获得所述分布式锁的一台第二服务器执行所述定时任务之后,所述方法还包括:所述成功获得所述分布式锁的一台第二服务器将所述定时任务的执行结果写...
【专利技术属性】
技术研发人员:贾振通,杜楠,马宏伟,
申请(专利权)人:北京金山软件有限公司,北京金山数字娱乐科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。