CN109766201A - 任务分发方法、服务器、客户端和系统 - Google Patents
任务分发方法、服务器、客户端和系统 Download PDFInfo
- Publication number
- CN109766201A CN109766201A CN201910006736.2A CN201910006736A CN109766201A CN 109766201 A CN109766201 A CN 109766201A CN 201910006736 A CN201910006736 A CN 201910006736A CN 109766201 A CN109766201 A CN 109766201A
- Authority
- CN
- China
- Prior art keywords
- task
- instruction message
- message
- timed task
- described instruction
- 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
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种任务分发方法、服务器、客户端和系统,通过在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务,实现指令消息生成与分发之间的异步,提高了任务分发的灵活性和效率,在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配,由此形成的非阻塞模式提高了任务分发的速度和效率。
Description
技术领域
本发明涉及信号处理技术,尤其涉及一种任务分发方法、服务器、客户端和系统。
背景技术
在各类计算机的日常运维工作中,通常需要以不同的时间间隔执行各种定时任务,以对计算机中的软件或硬件进行周期性维护和配置。计算机需要对这些任务进行周期性且合理的任务分发。
常用的任务分发方法一般需要依赖于计算机本地的crontab服务进行任务配置、管理和执行。通过在计算机中完成一次crontab服务的初始配置,计算机就能自动维护该crontab服务,对本地的定时任务周期性执行。
但随着分布式架构的推广,运维操作不再局限于少量的几台服务器。对成百上千台计算机使用crontab服务进行日常的运维操作,需要人工登录到每台计算机进行手工修改,增加了巨大工作量。现有的任务分发方法中,crontab服务不能跨网络,只能针对本地服务,难以用于多台计算机定时任务的分发管控。
发明内容
本发明提供一种任务分发方法、服务器、客户端和系统,通过服务器以消息队列进行统一任务分发,实现对多台客户端的定时任务执行的管控。
根据本发明的第一方面,提供一种任务分发方法,包括:
在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;
根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务;
在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配。
可选地,所述在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配,包括:
在从所述第一消息队列逐个接收到所述指令消息时,从每个所述指令消息中解析得到至少一个目标主机标识,所述目标主机标识指示了所述指令消息对应的定时任务预设的执行主机;
根据每个所述目标主机标识,在备选客户端中确定与所述指令消息对应的定时任务相匹配的目标客户端,所述目标客户端的主机标识与所述目标主机标识一致;
将所述指令消息分发给所述目标客户端。
可选地,所述在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务,包括:
根据预存储的每个备选任务的第一发布时刻和预设的执行频率,获得每个备选任务的第二发布时刻;
在获取到指示定时时刻到达的信息时,从所有所述备选任务中,获取第二发布时刻与所述定时时刻一致的至少一个备选任务;
将所述至少一个备选任务,确定为与所述定时时刻匹配的定时任务,并将所述第二发布时刻重新确定为所述至少一个备选任务的第一发布时刻。
可选地,所述根据所述至少一个定时任务,分别生成指令消息,包括:
获取每个定时任务预设的目标主机标识、目标运行目录、目标用户标识、调用命令;
将每个定时任务的所述目标主机标识、目标运行目录、目标用户标识、调用命令生成一个指令消息。
可选地,在所述将所述指令消息分发给目标客户端之后,还包括:
从所述目标客户端接收任务执行结果信息,所述任务执行结果信息为所述目标客户端在所述指令消息对应的定时任务执行结束时,根据任务执行结果生成的反馈信息。
可选地,在所述在从所述第一消息队列逐个接收到所述指令消息之前,还包括:
若获取到临时任务,则根据所述临时任务生成指令消息并将所述指令消息均存入第一消息队列,并将所述临时任务确定为执行频率为0的定时任务。
根据本发明的第二方面,提供了一种任务分发方法,包括:
在从服务器接收到指令消息时,从所述指令消息中获取所述指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令;
以所述目标用户标识指示的用户账号切换至所述目标运行目录,执行所述调用命令;
在确定所述调用命令全部执行完毕时,向所述服务器反馈用于指示所述定时任务执行结果的任务执行结果信息。
根据本发明的第三方面,提供了一种服务器,包括:
定时任务生成模块,用于在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;
指令消息生成模块,用于根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务;
分发模块,用于在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配。
根据本发明的第四方面,提供了一种客户端,包括:
接收模块,用于在从服务器接收到指令消息时,从所述指令消息中获取所述指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令;
执行模块,用于以所述目标用户标识指示的用户账号切换至所述目标运行目录,执行所述调用命令;
反馈模块,用于在确定所述调用命令全部执行完毕时,向所述服务器反馈用于指示所述定时任务执行结果的任务执行结果信息。
根据本发明的第五方面,提供了一种系统,包括:服务器和客户端;
所述服务器用于执行如本发明第一方面所述的任务分发方法;
所述客户端用于执行如本发明第二方面所述的任务分发方法。
根据本发明的第六方面,提供一种服务器,包括:存储器、处理器以及计算机程序,其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行,以实现本发明第一方面及第一方面各种可能设计的所述方法。
根据本发明的第七方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时用于实现本发明第一方面及第一方面各种可能设计的所述方法。
根据本发明的第八方面,提供一种客户端,包括:存储器、处理器以及计算机程序,其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行,以实现本发明第二方面及第二方面各种可能设计的所述方法。
根据本发明的第九方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时用于实现本发明第二方面及第二方面各种可能设计的所述方法。
本发明提供的一种任务分发方法、服务器、客户端和系统,通过在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务,实现指令消息生成与分发之间的异步,提高了任务分发的灵活性和效率,在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配,由此形成的非阻塞模式提高了任务分发的速度和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种任务分发系统示意图;
图2为本发明实施例提供的一种任务分发方法的流程示意图;
图3为本发明实施例提供的另一种任务分发方法的流程示意图;
图4为本发明实施例提供的一种任务分发方法的流程示意图;
图5为本发明实施例提供的一种服务器结构示意图;
图6为本发明实施例提供的另一种服务器结构示意图;
图7为本发明实施例提供的另一种客户端结构示意图;
图8为本发明提供的一种服务器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应当理解,在本申请中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
应当理解,在本申请中,类似“与A对应的B”、“与A匹配的B”的描述都表示B与A相关联,根据A可以确定B。但根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”或“在监听到……时”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
应当理解,在本申请中,“定时任务”可以理解为需要以一定频率发布给对应目标主机,以使得目标主机定时响应并执行的任务。例如每隔30分钟抓取一次数据的定时任务。传统的方法是在各个计算机本地对crontab服务进行配置和管理,以使各个计算机在本地自动以一定频率执行抓取一次数据的定时任务。本发明的一种实施例则是服务器每隔30分钟发布一次定时任务给各个客户端,以使得对应的客户端进行抓取一次数据的任务响应。
“目标主机标识”指示在定时任务中预设的执行任务的目标主机,即应当由该主机执行这个定时任务,例如可以是目标主机的网络协议IP地址或物理地址或相关接口地址。
“目标目录”为定时任务预设的命令运行目录,即应当在预设的目标目录下运行相应的命令,来执行定时任务。
“目标用户标识”指示定时任务预设的执行用户,即应当以目标用户标识所指示的用户运行相应的命令,来执行定时任务,例如可以是用户账号名称。
“调用命令”为定时任务预设的执行过程中需要运行的命令。
“执行频率”为定时任务预设的执行频率,例如每十分钟执行一次。
图1为本发明实施例提供的一种任务分发系统示意图。在面对需要维护的成百上千台客户端,使用传统的手工配置方式已经无法适用。如图1所示的实施例通过集中任务配置,对所有定时任务的进行预先配置后存储于服务器的数据库中,并对每个定时任务相应配置执行频率。根据定时器中预设的时钟信号以各个定时任务的执行频率从数据库中将相应的定时任务提取出来。以消息队列的方式将提取得到的定时任务进行传输,以消息队列的先进先出、后进后出的特性,避免了大量数据积压传输通道导致传输效率降低的问题。从消息队列中逐个获得与各个任务对应的指令消息,并根据不同的任务内容分发给相应客户端的目标主机,实现异步非阻塞的任务分发。
图2为本发明实施例提供的一种任务分发方法的流程示意图,具体可以应用于图1所示的系统中。图2所示方法的执行主体可以是服务器。服务器进一步又可以理解为是单独的一个电子设备,或者两个及两个以上的电子设备构成的机组。图2所示方法可以包括:
S101,在定时时刻到达时,确定与定时时刻匹配的至少一个定时任务。
具体地,与定时时刻匹配的至少一个定时任务,可以理解任务发布时刻满足定时时刻的定时任务。例如,任务1和任务2的执行频率是每十分钟执行一次,而任务3、任务4、任务5、任务6、任务7都是每一分钟执行一次。那么,每十分钟作为任务1和任务2的任务发布时刻,每一分钟作为任务3、任务4、任务5、任务6、任务7的任务发布时刻。可见,在第1至第9分钟期间,每过一分钟都满足每一分钟执行一次的执行频率,因此每一分钟都提取一次任务3、任务4、任务5、任务6和任务7用于发布;而在第10分钟达到时,每十分钟执行一次的频率也满足了,因此在第10分钟达到时将所有任务都提取出来用于发布。
其中,定时时刻到达可以理解为定时器中用户预设的定时时刻到达。定时时刻到达还可以理解为是事件触发得到的定时时刻到达。具体地,即在确定预设事件发生时,将确定该预设事件发生的时刻作为到达的定时时刻,并根据该事件确定与定时时刻匹配的至少一个定时任务,或者在预设的定时时刻到达时,确定与定时时刻匹配的至少一个定时任务。
发生的事件可以是接收到任务申请消息,或者是接收到故障通知。接收到任务申请消息例如是,在接收到用户特征抓取任务申请消息时,以确定接收到该消息时的时刻为任务发布时刻,且以确定接收到该消息时的时刻作为到达的定时时刻,将用户特征抓取任务作为与定时时刻匹配的一个定时任务。接收到故障通知例如是,在接收到故障通知时,以确定接收到该故障通知时的时刻为任务发布时刻,且以确定接收到该故障通知时的时刻作为到达的定时时刻,将对故障主机进行重启的任务作为与定时时刻匹配的一个定时任务。
上述确定的与定时时刻匹配的定时任务,都是从预设的任务集合中提取出来的任务。任务集合可以理解为是预先集中配置的数据库。
S102,根据所述至少一个定时任务,分别生成指令消息并将指令消息均存入第一消息队列,每个指令消息对应一个定时任务。
在确定定时任务之后,根据定时任务生成指令消息具体可以是:首先获取每个定时任务预设的任务执行属性。其中,任务执行属性可以是目标主机标识、目标运行目录、目标用户标识和调用命令。然后将每个定时任务的任务执行属性生成一个指令消息,定时任务与指令消息一一对应。例如将任务执行属性按照指令消息的格式进行消息生成,且对每个指令消息还可以根据定时任务、目标主机和执行时刻的不同而分配一个唯一任务编码。将唯一任务编码保存于服务器的同时写入指令消息中,用于对指令消息对应定时任务执行情况的跟踪。
由于在同一时刻可能生成的指令消息不唯一,如果以同步模式进行消息的生成和分发,则很可能因同一时刻生成的指令消息数量超过最高传输负荷而传输失败或传输速度不足,因此本实施例的一种实现方式可以是通过第一消息队列,实现指令消息的生成与分发之间的松耦合:以单独的模块进行指令消息的生成,通过将生成的指令消息都存入第一消息队列中,然后以另一个单独的模块从第一消息队列中逐个读取出指令消息,实现指令消息生成与分发之间的异步,提高了任务分发的灵活性和效率。
S103,在从第一消息队列逐个接收到指令消息时,将指令消息分发给目标客户端,目标客户端与指令消息对应的定时任务相匹配。
具体地,可以是启用一个监听线程对第一消息队列进行监听,在第一消息队列被存入指令消息时,从中读取指令消息,并解析得到每个指令消息的任务执行属性。任务执行属性可以是包含了用于指示与指令消息对应的目标客户端的信息,例如目标主机标识。
在一种实现方式中,在监听线程在得到指令消息与其目标主机标识后,可以立即创建一个分发线程,用于将指令消息发送给目标主机标识指示的客户端。
在另一种实现方式中,在监听线程在得到指令消息与其目标主机标识后,也可以将指令消息和其对应的目标主机标识存入第二消息队列,由有限的处于空闲状态的分发线程从第二消息队列中读取指令消息和其对应的目标主机标识,并将指令消息发送给目标主机标识指示的客户端。
服务器以发送线程将指令消息分发给目标客户端后,该发送线程的生命周期结束,回到空闲状态等待对下一个消息指令进行发送处理。服务器负责发送指令消息的线程并不等待各目标客户端的任务执行反馈,由此形成的非阻塞模式提高了任务分发的速度和效率。
本发明实施例提供的任务分发方法,通过在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务,实现指令消息生成与分发之间的异步,提高了任务分发的灵活性和效率,在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配,由此形成的非阻塞模式提高了任务分发的速度和效率。
图3为本发明实施例提供的另一种任务分发方法的流程示意图,为了更加清楚地描述图2所示的实施例,一下通过具体实施例结合图3对将指令消息分发给目标客户端的过程进行具体说明。
S201,在定时时刻到达时,确定与定时时刻匹配的至少一个定时任务。
S202,根据所述至少一个定时任务,分别生成指令消息并将指令消息均存入第一消息队列,每个指令消息对应一个定时任务。
步骤S201和S202的具体实现过程参见图2所示实施例中S101和S102的具体说明,本实施例不在赘述。
S203,在从第一消息队列逐个接收到指令消息时,从每个指令消息中解析得到至少一个目标主机标识。
其中,目标主机标识指示了指令消息对应的定时任务预设的执行主机。在一种实现方式中,一个指令消息只能解析得到一个目标主机标识,即一个指令消息用于控制一个客户端执行定时任务。在另一种实现方式中。一个指令消息可以解析得到多个以上的目标主机标识,即该指令消息用于控制多个客户端执行定时任务,服务器可以将这类指令消息复制成多份,以便向对应的客户端分发。在具有多个目标主机标识的指令消息中,应该也配置有相同数量的唯一任务编码,每个唯一任务编码对应一个目标主机标识。
指令消息中被写入了与对应定时任务相关的信息,在对指令消息的解析中,除了解析得到目标主机标识,还可以解析得到例如唯一任务编码等标识信息,并在本地存储例如唯一任务编码等标识信息。
S204,根据每个目标主机标识,在备选客户端中确定与指令消息对应的定时任务相匹配的目标客户端,目标客户端的主机标识与目标主机标识一致。
S205,将指令消息分发给目标客户端。
与指令消息对应的定时任务相匹配,可以理解为是以目标客户端的主机标识与目标主机标识一致而确定的匹配关系。
其中,备选客户端可以是预先在服务器上成功注册的客户端。例如客户端预先与服务器连接并在服务器上进行注册,服务器将所有成功注册的客户端确定为备选客户端。服务器对每个备选客户端对应配置有主机标识,主机标识可以理解为是客户端的IP地址和/或物理地址,也可以理解为是服务器对每个已注册的客户端分配的唯一主机编码。主机标识与每个备选客户端具有一一映射的对应关系。
具体地,步骤S203至S204可以是服务器中的监听线程执行的,且在执行完成后将指令消息存入第二消息队列。步骤S205可以是服务器为每个指令消息创建一个分发线程,以使得分发线程从第二消息队列中获取一个指令消息进行分发。每个分发线程的生命周期可以是从第二消息队列中获得其对应的指令消息开始,到将这个指令消息发送给目标客户端结束。通过多线程操作,实现异步非阻塞和任务分发高并发,降低了多台客户端定时任务的管控难度。
在上述实施例的基础上,所述在定时时刻到达时得到定时任务的一种具体实现方式可以是:服务器预先存储有多个备选任务,且每个备选任务都对应有第一发布时刻和执行频率。服务器根据预存储的每个备选任务的第一发布时刻和预设的执行频率,获得每个备选任务的第二发布时刻。例如,备选任务“对文件X的安全扫描”的第一发布时刻是第20分钟,其执行频率为30分钟执行一次,则可以得到该备选任务的第二发布时刻是第50分钟。在获取到指示定时时刻到达的信息时,例如服务器在到达第50分钟时发出一个时刻指示信息,看了一下理解为时钟信号,则服务器从所有所述备选任务中,获取第二发布时刻与所述定时时刻一致的至少一个备选任务。将所述至少一个备选任务,确定为与所述定时时刻匹配的定时任务,并将所述第二发布时刻重新确定为所述至少一个备选任务的第一发布时刻。例如在所有备选任务中,第二发布时刻为第50分钟的备选任务有57个,那么服务器将这57个备选任务都作为与第50分钟匹配的定时任务,并将第50分钟作为这57个备选任务的第一发布时刻。
在上述实施例的基础上,在将指令消息分发给目标客户端之后,服务器还可以从目标客户端接收任务执行结果信息,所述任务执行结果信息为所述目标客户端在所述指令消息对应的定时任务执行结束时,根据任务执行结果生成的反馈信息。例如,服务器创建一个结果反馈进程,反馈进程根据唯一任务编码或其他针对消息的和标识,对从所有客户端接收来的任务执行结果信息进行处理。具体可以是进行执行结果的输出处理。
在上述实施例的基础上,运维工作中,经常出现需要批量执行临时性统计脚本的情况,在一种实现方式中,服务器可以在第一消息队列设置外部接口,以便用户通过外部接口向第一消息队列插入临时任务的指令消息,以使得任务的指令消息进行实时的解析和分发处理。具体地,在从第一消息队列逐个接收到所述指令消息之前,服务器还可以从外部接收临时任务,例如获取到批量执行单次统计脚本的临时任务,则根据所述临时任务生成指令消息并将所述指令消息均存入第一消息队列,并将所述临时任务确定为执行频率为0的定时任务。临时任务可以是与备选任务一样具有目标主机标识、目标运行目录、目标用户标识和调用命令等任务执行属性。
图4为本发明实施例提供的一种任务分发方法的流程示意图,图4所示实施例的执行主体可以是客户端,客户端与图2、图3所示实施例中的服务器进行通信。客户端可以是需要执行定时任务的电子设备。图4所示实施例的方法包括:
S301,在从服务器接收到指令消息时,从指令消息中获取指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令。
具体地,客户端具体可以是专门创建一个指令接收线程对服务器是否发来指令消息进行监听,一旦监听到从服务器发来的指令消息,则接收指令消息并对其进行解析,得到运行该指令消息对应的定时任务所需的目标运行目录、目标用户标识、调用命令。还可以解析得到一个与指令消息、客户端的主机标识和执行时刻对应的唯一任务编码。
S302,以目标用户标识指示的用户账号切换至目标运行目录,执行调用命令。
在执行调用命令的同时,客户端还可以创建一个与该指令消息对应的监控线程。监控线程在执行调用命令的过程中对定时任务的执行情况进行轮询。例如每1分钟轮询一次是否执行结束。
S303,在确定调用命令全部执行完毕时,向服务器反馈用于指示定时任务执行结果的任务执行结果信息。
具体地,可以是在轮询得到定时任务结束时,客户端通过监控线程获取定时任务的执行结果。客户端具体可以通过监控线程根据定时任务执行结果得到任务执行结果信息,并将任务执行结果信息发送给服务器,实现定时任务执行结果的反馈。在反馈时,具体可以将唯一任务编码写入任务执行结果信息,以便服务器对各个定时任务执行结果信息进行区分。
本发明实施例提供的任务分发方法,通过在从服务器接收到指令消息时,从所述指令消息中获取所述指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令;以所述目标用户标识指示的用户账号切换至所述目标运行目录,执行所述调用命令;在确定所述调用命令全部执行完毕时,向所述服务器反馈用于指示所述定时任务执行结果的任务执行结果信息,减少了在对任务执行结果反馈所用的运行资源。
图5为本发明实施例提供的一种服务器结构示意图,包括:
定时任务生成模块51,用于在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务。
指令消息生成模块52,用于根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务。
分发模块53,用于在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配。
图5所示实施例的服务器对应地可用于执行图2所示方法实施例中服务器执行的步骤,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,分发模块53具体可以用于:在从所述第一消息队列逐个接收到所述指令消息时,从每个所述指令消息中解析得到至少一个目标主机标识,所述目标主机标识指示了所述指令消息对应的定时任务预设的执行主机;根据每个所述目标主机标识,在备选客户端中确定与所述指令消息对应的定时任务相匹配的目标客户端,所述目标客户端的主机标识与所述目标主机标识一致;将所述指令消息分发给所述目标客户端。
在上述实施例的基础上,定时任务生成模块51具体可以用于:根据预存储的每个备选任务的第一发布时刻和预设的执行频率,获得每个备选任务的第二发布时刻;在获取到指示定时时刻到达的信息时,从所有所述备选任务中,获取第二发布时刻与所述定时时刻一致的至少一个备选任务;将所述至少一个备选任务,确定为与所述定时时刻匹配的定时任务,并将所述第二发布时刻重新确定为所述至少一个备选任务的第一发布时刻。
在上述实施例的基础上,指令消息生成模块52具体可以用于:获取每个定时任务预设的目标主机标识、目标运行目录、目标用户标识、调用命令;将每个定时任务的所述目标主机标识、目标运行目录、目标用户标识、调用命令生成一个指令消息。
图6为本发明实施例提供的另一种服务器结构示意图,还包括:
结果反馈模块54,用于在所述将所述指令消息分发给目标客户端之后,从所述目标客户端接收任务执行结果信息,所述任务执行结果信息为所述目标客户端在所述指令消息对应的定时任务执行结束时,根据任务执行结果生成的反馈信息。
和/或,临时任务插入模块55,用于在从所述第一消息队列逐个接收到所述指令消息之前,若获取到临时任务,则根据所述临时任务生成指令消息并将所述指令消息均存入第一消息队列,并将所述临时任务确定为执行频率为0的定时任务。
其中结果反馈模块54可以是如图6所示与指令消息生成模块52连接,或者单独与处理器连接,在此不做限制。
图7为本发明实施例提供的另一种客户端结构示意图,包括:
接收模块71,用于在从服务器接收到指令消息时,从所述指令消息中获取所述指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令。
执行模块72,用于以所述目标用户标识指示的用户账号切换至所述目标运行目录,执行所述调用命令.
反馈模块73,用于在确定所述调用命令全部执行完毕时,向所述服务器反馈用于指示所述定时任务执行结果的任务执行结果信息。
图7所示实施例的客户端对应地可用于执行图4所示方法实施例中客户端执行的步骤,其实现原理和技术效果类似,此处不再赘述。
如图1所示,本发明提供一种系统,包括:服务器和客户端。
所述服务器用于执行如图2至图3所示的任务分发方法。
所述客户端用于执行如图4所示的任务分发方法。
图8为本发明提供的一种服务器的硬件结构示意图。如图8所示,该服务器包括:处理器81、存储器82和计算机程序;其中
存储器82,用于存储所述计算机程序,该存储器还可以是闪存(flash)。
处理器81,用于执行所述存储器存储的计算机程序,以实现上述方法中服务器执行的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选地,存储器82既可以是独立的,也可以跟处理器81集成在一起。
当所述存储器82是独立于处理器81之外的器件时,所述服务器还可以包括:
总线83,用于连接所述存储器82和处理器81。图8的服务器还可以进一步包括发送器(图中未画出),用于向客户端发送处理器81生成的指令消息。
本发明提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时用于实现上述服务器的各种实施方式提供的方法。
本发明还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时用于实现上述客户端的各种实施方式提供的方法。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得服务器实施上述的各种实施方式提供的方法。
在上述服务器或者客户端的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种任务分发方法,其特征在于,包括:
在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;
根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务;
在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配。
2.根据权利要求1所述的方法,其特征在于,所述在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配,包括:
在从所述第一消息队列逐个接收到所述指令消息时,从每个所述指令消息中解析得到至少一个目标主机标识,所述目标主机标识指示了所述指令消息对应的定时任务预设的执行主机;
根据每个所述目标主机标识,在备选客户端中确定与所述指令消息对应的定时任务相匹配的目标客户端,所述目标客户端的主机标识与所述目标主机标识一致;
将所述指令消息分发给所述目标客户端。
3.根据权利要求1所述的方法,其特征在于,所述在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务,包括:
根据预存储的每个备选任务的第一发布时刻和预设的执行频率,获得每个备选任务的第二发布时刻;
在获取到指示定时时刻到达的信息时,从所有所述备选任务中,获取第二发布时刻与所述定时时刻一致的至少一个备选任务;
将所述至少一个备选任务,确定为与所述定时时刻匹配的定时任务,并将所述第二发布时刻重新确定为所述至少一个备选任务的第一发布时刻。
4.根据权利要求1至3任一所述的方法,其特征在于,所述根据所述至少一个定时任务,分别生成指令消息,包括:
获取每个定时任务预设的目标主机标识、目标运行目录、目标用户标识、调用命令;
将每个定时任务的所述目标主机标识、目标运行目录、目标用户标识、调用命令生成一个指令消息。
5.根据权利要求1所述的方法,其特征在于,在所述将所述指令消息分发给目标客户端之后,还包括:
从所述目标客户端接收任务执行结果信息,所述任务执行结果信息为所述目标客户端在所述指令消息对应的定时任务执行结束时,根据任务执行结果生成的反馈信息。
6.根据权利要求1所述的方法,其特征在于,在所述在从所述第一消息队列逐个接收到所述指令消息之前,还包括:
若获取到临时任务,则根据所述临时任务生成指令消息并将所述指令消息均存入第一消息队列,并将所述临时任务确定为执行频率为0的定时任务。
7.一种任务分发方法,其特征在于,包括:
在从服务器接收到指令消息时,从所述指令消息中获取所述指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令;
以所述目标用户标识指示的用户账号切换至所述目标运行目录,执行所述调用命令;
在确定所述调用命令全部执行完毕时,向所述服务器反馈用于指示所述定时任务执行结果的任务执行结果信息。
8.一种服务器,其特征在于,包括:
定时任务生成模块,用于在定时时刻到达时,确定与所述定时时刻匹配的至少一个定时任务;
指令消息生成模块,用于根据所述至少一个定时任务,分别生成指令消息并将所述指令消息均存入第一消息队列,每个所述指令消息对应一个所述定时任务;
分发模块,用于在从所述第一消息队列逐个接收到所述指令消息时,将所述指令消息分发给目标客户端,所述目标客户端与所述指令消息对应的定时任务相匹配。
9.一种客户端,其特征在于,包括:
接收模块,用于在从服务器接收到指令消息时,从所述指令消息中获取所述指令消息对应的定时任务的目标运行目录、目标用户标识、调用命令;
执行模块,用于以所述目标用户标识指示的用户账号切换至所述目标运行目录,执行所述调用命令;
反馈模块,用于在确定所述调用命令全部执行完毕时,向所述服务器反馈用于指示所述定时任务执行结果的任务执行结果信息。
10.一种系统,其特征在于,包括:服务器和客户端;
所述服务器用于执行如权利要求1至6任一所述的任务分发方法;
所述客户端用于执行如权利要求7所述的任务分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910006736.2A CN109766201A (zh) | 2019-01-04 | 2019-01-04 | 任务分发方法、服务器、客户端和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910006736.2A CN109766201A (zh) | 2019-01-04 | 2019-01-04 | 任务分发方法、服务器、客户端和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766201A true CN109766201A (zh) | 2019-05-17 |
Family
ID=66452568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910006736.2A Pending CN109766201A (zh) | 2019-01-04 | 2019-01-04 | 任务分发方法、服务器、客户端和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766201A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162392A (zh) * | 2019-05-29 | 2019-08-23 | 北京达佳互联信息技术有限公司 | 周期性任务的执行方法、装置、电子设备及存储介质 |
CN110868449A (zh) * | 2019-10-14 | 2020-03-06 | 深圳市非零无限科技有限公司 | 一种基于异步消息实现定时任务的方法及系统 |
CN112165527A (zh) * | 2020-09-30 | 2021-01-01 | 中国工商银行股份有限公司 | 文件分发方法、文件分发装置和电子设备 |
CN113706113A (zh) * | 2021-08-31 | 2021-11-26 | 广州新丝路信息科技有限公司 | 一种基于本地加签的报关报文申报处理方法及相关设备 |
CN114546629A (zh) * | 2022-04-24 | 2022-05-27 | 深圳美云集网络科技有限责任公司 | 任务执行系统、方法、服务器及计算机可读存储介质 |
CN115408153A (zh) * | 2022-08-26 | 2022-11-29 | 海光信息技术股份有限公司 | 多线程处理器的指令分发方法、装置和存储介质 |
CN115946126A (zh) * | 2023-02-22 | 2023-04-11 | 深圳市欧拉智造科技有限公司 | 任务执行控制方法及机器人 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117756A1 (en) * | 2011-11-08 | 2013-05-09 | Electronics And Telecommunications Research Institute | Task scheduling method for real time operating system |
CN103197969A (zh) * | 2013-03-27 | 2013-07-10 | 百度在线网络技术(北京)有限公司 | 一种分布式定时任务控制装置及方法 |
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
CN106569878A (zh) * | 2015-10-08 | 2017-04-19 | 北京奇虎科技有限公司 | 一种分布式定时任务管理方法和系统 |
CN108132836A (zh) * | 2017-12-29 | 2018-06-08 | 北京奇艺世纪科技有限公司 | 一种任务分发方法、装置及电子设备 |
-
2019
- 2019-01-04 CN CN201910006736.2A patent/CN109766201A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117756A1 (en) * | 2011-11-08 | 2013-05-09 | Electronics And Telecommunications Research Institute | Task scheduling method for real time operating system |
CN103197969A (zh) * | 2013-03-27 | 2013-07-10 | 百度在线网络技术(北京)有限公司 | 一种分布式定时任务控制装置及方法 |
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
CN106569878A (zh) * | 2015-10-08 | 2017-04-19 | 北京奇虎科技有限公司 | 一种分布式定时任务管理方法和系统 |
CN108132836A (zh) * | 2017-12-29 | 2018-06-08 | 北京奇艺世纪科技有限公司 | 一种任务分发方法、装置及电子设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162392A (zh) * | 2019-05-29 | 2019-08-23 | 北京达佳互联信息技术有限公司 | 周期性任务的执行方法、装置、电子设备及存储介质 |
CN110868449A (zh) * | 2019-10-14 | 2020-03-06 | 深圳市非零无限科技有限公司 | 一种基于异步消息实现定时任务的方法及系统 |
CN112165527A (zh) * | 2020-09-30 | 2021-01-01 | 中国工商银行股份有限公司 | 文件分发方法、文件分发装置和电子设备 |
CN112165527B (zh) * | 2020-09-30 | 2023-01-06 | 中国工商银行股份有限公司 | 文件分发方法、文件分发装置和电子设备 |
CN113706113A (zh) * | 2021-08-31 | 2021-11-26 | 广州新丝路信息科技有限公司 | 一种基于本地加签的报关报文申报处理方法及相关设备 |
CN114546629A (zh) * | 2022-04-24 | 2022-05-27 | 深圳美云集网络科技有限责任公司 | 任务执行系统、方法、服务器及计算机可读存储介质 |
CN115408153A (zh) * | 2022-08-26 | 2022-11-29 | 海光信息技术股份有限公司 | 多线程处理器的指令分发方法、装置和存储介质 |
CN115408153B (zh) * | 2022-08-26 | 2023-06-30 | 海光信息技术股份有限公司 | 多线程处理器的指令分发方法、装置和存储介质 |
CN115946126A (zh) * | 2023-02-22 | 2023-04-11 | 深圳市欧拉智造科技有限公司 | 任务执行控制方法及机器人 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766201A (zh) | 任务分发方法、服务器、客户端和系统 | |
CN107040416B (zh) | 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 | |
CN109542865A (zh) | 分布式集群系统配置文件同步方法、装置、系统及介质 | |
CN108390950A (zh) | 一种消息推送方法、装置及设备 | |
CN114024880B (zh) | 基于代理ip与流表的网络靶场探针采集方法与系统 | |
CN108306804A (zh) | 一种Ethercat主站控制器及其通信方法和系统 | |
CN110309231A (zh) | 一种跨机房的数据同步方法及系统 | |
CN105357273A (zh) | 异步通信模式下socket通信与进程管理通用平台及方法 | |
CN112583931A (zh) | 消息处理方法、消息中间件、电子设备和存储介质 | |
CN105553682B (zh) | 事件通知方法及用于事件通知的系统 | |
CN112698838B (zh) | 多云容器部署系统及其容器部署方法 | |
CN110391940A (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
CN109062681A (zh) | 一种周期性循环任务的执行方法、系统、装置及存储介质 | |
CN102455951A (zh) | 一种虚拟机容错方法和系统 | |
CN115794313A (zh) | 一种虚拟机调试方法、系统、电子设备及存储介质 | |
CN113658351B (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN103841193A (zh) | 一种信息推送方法及系统 | |
CN105427149A (zh) | 一种基于soa扩展框架的跨境电子商务bpo服务方法及装置 | |
CN104660664A (zh) | 用来管理储存系统的方法与装置 | |
CN110445874A (zh) | 一种会话处理方法、装置、设备和存储介质 | |
CN106161626A (zh) | 一种云终端管理系统及方法 | |
CN109194731A (zh) | 一种基于组态软件的并发实时数据传输接口实现方法 | |
CN104468645A (zh) | 一种控制方法、电子设备及一种信息传输方法、装置 | |
CN114896035A (zh) | 跨平台空间的定时任务调度管理系统 | |
CN115700487A (zh) | 消息队列中消息的处理方法、装置、设备及存储介质 |
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 |
Application publication date: 20190517 |
|
RJ01 | Rejection of invention patent application after publication |