CN108132836B - 一种任务分发方法、装置及电子设备 - Google Patents

一种任务分发方法、装置及电子设备 Download PDF

Info

Publication number
CN108132836B
CN108132836B CN201711482895.7A CN201711482895A CN108132836B CN 108132836 B CN108132836 B CN 108132836B CN 201711482895 A CN201711482895 A CN 201711482895A CN 108132836 B CN108132836 B CN 108132836B
Authority
CN
China
Prior art keywords
task
executed
executor
tasks
preset
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.)
Active
Application number
CN201711482895.7A
Other languages
English (en)
Other versions
CN108132836A (zh
Inventor
赵书礼
苏益超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201711482895.7A priority Critical patent/CN108132836B/zh
Publication of CN108132836A publication Critical patent/CN108132836A/zh
Application granted granted Critical
Publication of CN108132836B publication Critical patent/CN108132836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种任务分发方法、装置及电子设备,所述方法包括:每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,所述待执行任务为按照其预设启动时刻,在所述预设启动时刻到达时,添加到所述任务表中的;如果存在,从所述任务表中获取不大于预设数量的所述待执行任务;针对获取的每个所述待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由所述任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。应用本发明实施例,可以避免将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小任务执行器的负载,从而实现将生成合作数据的任务合理的分发给任务执行器。

Description

一种任务分发方法、装置及电子设备
技术领域
本发明涉及信息处理技术领域,特别是涉及一种任务分发方法、装置及电子设备。
背景技术
随着互联网的快速发展,与数据提供商合作的合作方越来越多,数据提供商的服务端通过向合作方提供合作数据,以实现合作方通过自身的客户端或网站,向用户展示来自数据提供商的服务端的合作数据,从而达到合作共赢的目的。例如,与视频网站合作的各种浏览器或者各种应用程序等合作方,将视频网站提供的视频内容,提供给自身客户端的用户。
在数据提供商的服务端向合作方提供合作数据之前,数据提供商的服务端需要预先生成这些合作数据,可以针对需要生成的合作数据创建对应的任务,并由任务执行器执行任务来生成数据,例如,在数据提供商的服务端,将生成合作数据的任务分发给各任务执行器来完成。但是,随着合作数据的增多,任务执行器执行的任务就越多,因此如何将生成合作数据的任务合理的分发给任务执行器是目前需要解决的问题。
发明内容
本发明实施例的目的在于提供一种任务分发方法、装置及电子设备,以避免将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小任务执行器的负载,从而实现将待执行任务合理的分发给任务执行器。具体技术方案如下:
本发明实施例公开了一种任务分发方法,所述方法包括:
每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,所述待执行任务为按照其预设启动时刻,在所述预设启动时刻到达时,添加到所述任务表中的;
如果存在,从所述任务表中获取不大于预设数量的所述待执行任务;
针对获取的每个所述待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由所述任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
可选的,采用如下步骤将已创建的任务作为待执行任务添加到所述任务表中:
针对已创建的任务中当前状态为启用状态的任务,监控是否到达该任务的预设启动时刻;
在所述预设启动时刻到达时,将该任务作为待执行任务添加到所述任务表中。
可选的,所述将该待执行任务分发给用于执行该待执行任务的任务执行器,包括:
获取该待执行任务的任务信息中的执行器标识;
将该待执行任务分发给所述执行器标识表示的任务执行器。
可选的,在所述将该待执行任务分发给用于执行该待执行任务的任务执行器之后,所述方法还包括:
修改所述任务表中该待执行任务的任务执行状态为正在执行状态。
可选的,在所述修改所述任务表中该待执行任务的任务执行状态为正在执行状态之后,所述方法还包括:
在接收到所述任务执行器返回的表示该待执行任务已执行完成的完成消息后,修改所述任务表中该待执行任务的任务执行状态为已执行状态。
本发明实施例公开了一种任务分发装置,所述装置包括:
扫描模块,用于每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,所述待执行任务为按照其预设启动时刻,在所述预设启动时刻到达时,添加到所述任务表中的;
获取模块,用于如果存在,从所述任务表中获取不大于预设数量的所述待执行任务;
分发模块,用于针对获取的每个所述待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由所述任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
可选的,所述装置还包括:
添加模块,用于采用如下步骤将已创建的任务作为待执行任务添加到所述任务表中:
针对已创建的任务中当前状态为启用状态的任务,监控是否到达该任务的预设启动时刻;并在所述预设启动时刻到达时,将该任务作为待执行任务添加到所述任务表中。
可选的,所述分发模块,具体用于获取该待执行任务的任务信息中的执行器标识;并将该待执行任务分发给所述执行器标识表示的任务执行器。
可选的,所述装置还包括:
状态修改模块,用于修改所述任务表中该待执行任务的任务执行状态为正在执行状态。
可选的,所述状态修改模块,还用于在接收到所述任务执行器返回的表示该待执行任务已执行完成的完成消息后,修改所述任务表中该待执行任务的任务执行状态为已执行状态。
本发明实施例公开了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的一种任务分发方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的一种任务分发方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种任务分发方法。
本发明实施例提供的一种任务分发方法、装置及电子设备,通过每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;如果存在,从任务表中获取不大于预设数量的待执行任务;针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。这样,将不大于预设数量的待执行任务分发给对应任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载,从而实现了将生成合作数据的任务合理的分发给任务执行器。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为发明实施例提供的一种任务分发方法的一种流程示意图;
图2为发明实施例提供的一种任务分发方法的步骤的一种流程示意图;
图3为发明实施例提供的一种任务分发方法的步骤的另一种流程示意图;
图4为发明实施例提供的一种任务分发方法的另一种流程示意图;
图5为本发明实施例提供的一种任务分发装置的一种结构示意图;
图6为本发明实施例提供的一种任务分发装置的另一种结构示意图;
图7为本发明实施例提供的一种任务分发装置的另一种结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
目前,与数据提供商合作的合作方越来越多,数据提供商的服务端需要生成的合作数据也就越来越多,数据提供商的服务端在生成合作数据的过程中,如何将生成合作数据任务合理的分发给任务执行器是需要解决的问题。本方案考虑到将生成合作数据的任务不同时分发给任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,在减小任务执行器的负载的同时,将生成合作数据的任务合理的分发给任务执行器。具体方案如下:
参见图1,图1为发明实施例提供的一种任务分发方法的一种流程示意图,包括如下步骤:
S110,每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的。
具体的,由于数据提供商与各个合作方合作之后,数据提供商的服务端针对需要生成的合作数据创建对应的任务,并在合作方获取合作数据之前完成该任务。因此,数据提供商的服务端可以在预设启动时刻,先将该任务作为待执行任务添加到任务表中,这样,当扫描任务表中是否存在待执行任务时,可以及时的扫描到该待执行任务。这里,预设启动时刻是根据合作方获取合作数据的时刻以及生成该合作数据所需的时间预先设置的,预设扫描周期可以根据实际需要来设定,例如每隔1分钟扫描一次、每隔5分钟扫描一次等。
S120,如果存在,从任务表中获取不大于预设数量的待执行任务。
具体的,由于与数据提供商合作的合作方越来越多,数据提供商的服务端的待执行任务也就越多,因此,同一时刻扫描到的待执行任务得数量也就越多,但是,考虑到将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,会增加任务执行器的负载。因此,这里通过扫描到任务表中存在待执行任务,先获取不大于预设数量的待执行任务,其中,预设数量的待执行任务可以根据实际应用场景和实际所需具体来设定,以使得任务执行器同时处理预设数量的待执行任务时,不超出任务执行器的处理能力,例如可以根据任务执行器的数量,判断任务执行器可以同时处理多少任务而不超出其处理能力。然后将这些不大于预设数量的待执行任务进行分发,从而避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载。
S130,针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
具体的,针对获取的不大于预设数量的待执行任务中的每个待执行任务,将每个待执行任务分别分发给用于执行各待执行任务的任务执行器,通过各任务执行器执行对应的待执行任务,从而生成需要提供给合作方的合作数据。这里,由于每个待执行任务都预先分配了对应的任务执行器,因此,在任务分发过程中,直接将待执行任务分发给用于执行该待执行任务的任务执行器即可。另外,每次获取的不大于预设数量的待执行任务分发给用于执行各待执行任务的任务执行器,实现了将生成合作数据的任务合理的分发给任务执行器。
由此可见,本发明实施例提供的一种任务分发方法,通过每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;如果存在,从任务表中获取不大于预设数量的待执行任务;针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。这样,将不大于预设数量的待执行任务分发给对应任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载,从而实现了将生成合作数据的任务合理的分发给任务执行器。
在本发明实施例中,可以采用如下步骤将已创建的任务作为待执行任务添加到任务表中,如图2所示,包括如下步骤:
S111,针对已创建的任务中当前状态为启用状态的任务,监控是否到达该任务的预设启动时刻。
具体的,在已创建的任务中每个任务的状态信息为禁用状态、启用状态和删除状态中的一种,由于禁用状态和删除状态的任务都是不需要执行的任务,因此,只需要监控当前状态为启用状态的任务是否到达该任务的预设启动时刻。这里,预设启动时刻是根据合作方获取合作数据的时刻以及生成该合作数据所需的时间预先设置的,例如,合作方获取合作数据的时刻为晚上8点,那么数据提供商的服务端需要在晚上8点之前生成该合作数据,从而预设启动时刻可以根据生成该合作数据所需的时间,预留足够时间提前生成该合作数据,这样,在合作方获取合作数据时,能够及时为合作方提供合作数据。
S112,在预设启动时刻到达时,将该任务作为待执行任务添加到任务表中。
具体的,对于已创建的任务中当前状态为启用状态的任务,都预先设定了任务的启动时刻,当预设启动时刻到达时,先将该任务作为待执行任务添加到任务表中,随后等待该待执行任务被扫描出来,从而执行该待执行任务。
在本发明实施例中,将该待执行任务分发给用于执行该待执行任务的任务执行器,如图3所示,具体可以为:
S131,获取该待执行任务的任务信息中的执行器标识。
具体的,当数据提供商与各个合作方合作之后,数据提供商的服务端会预先给每个待执行任务分发不同的任务执行器,可以是在该待执行任务的任务信息中预先添加执行器标识,这样,当需要该待执行任务分发给用于执行该待执行任务的任务执行器时,可以先获取该待执行任务的任务信息中的执行器标识,找到相应的认为执行器。
S132,将该待执行任务分发给执行器标识表示的任务执行器。
具体的,扫描到任务表中存在该待执行任务,并且需要执行该待执行任务时,将该待执行任务分发给执行器标识表示的任务执行器,从而通过该任务执行器执行该待执行任务。
参见图4,图4为发明实施例提供的一种任务分发方法的另一种流程示意图,包括如下步骤:
S410,在预设启动时刻到达时,将已创建的任务作为待执行任务添加到任务表中。
具体的,数据提供商与各个合作方合作之后,数据提供商的服务端针对需要生成的合作数据创建对应的任务,并在预设启动时刻到达时,将已创建的任务作为待执行任务添加到任务表中。
S420,每隔预设扫描周期扫描任务表中是否存在待执行任务。
这里,对任务表中任务进行扫描,扫描出任务执行状态为待执行状态的任务,作为待执行任务。
S430,如果存在,从任务表中获取不大于预设数量的待执行任务。
这里,如果任务表中存在待执行任务,则从任务表中获取不大于预设数量的待执行任务,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载。
S440,针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器。
具体的,针对获取的每个待执行任务,获取该待执行任务的任务信息中的执行器标识,将该待执行任务分发给执行器标识表示的任务执行器。
S450,在将该待执行任务分发给用于执行该待执行任务的任务执行器之后,修改任务表中该待执行任务的任务执行状态为正在执行状态。
具体的,当待执行任务分发给用于执行该待执行任务的任务执行器之后,任务执行器就开始执行该待执行任务,在任务表中该待执行任务的任务执行状态就不再是待执行状态了,而是正在执行状态,因此需要修改任务表中该待执行任务的任务执行状态为正在执行状态,从而可以避免该待执行任务已经被执行后,再次被扫描到任务表中存在该待执行任务。
S460,在修改任务表中该待执行任务的任务执行状态为正在执行状态之后,在接收到任务执行器返回的表示该待执行任务已执行完成的完成消息后,修改任务表中该待执行任务的任务执行状态为已执行状态。
具体的,当待执行任务分发给用于执行该待执行任务的任务执行器之后,任务执行器就开始执行该待执行任务,任务表中的该待执行任务的任务执行状态为正在执行状态。当该待执行任务执行完成后,任务执行器将会返回该待执行任务已执行完成的完成消息,接收该完成消息,并将任务表中该待执行任务的正在执行状态修改为已执行状态,表明通过任务执行器已经执行完成了该待执行任务,生成了合作数据,这样,在合作方发送该合作数据的请求时,直接将该合作数据发送给合作方。
参见图5,图5为本发明实施例提供的一种任务分发装置,包括如下模块:
扫描模块510,用于每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;
获取模块520,用于如果存在,从任务表中获取不大于预设数量的待执行任务;
分发模块530,用于针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
由此可见,本发明实施例提供的一种任务分发装置,先通过扫描模块每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;如果存在,通过获取模块从任务表中获取不大于预设数量的待执行任务;最后分发模块针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。这样,将不大于预设数量的待执行任务分发给对应任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载,从而实现了将生成合作数据的任务合理的分发给任务执行器。
进一步的,分发模块530,具体用于获取该待执行任务的任务信息中的执行器标识;并将该待执行任务分发给执行器标识表示的任务执行器。
进一步的,上述任务分发装置,如图6所示,还可以包括:
添加模块540,用于针对已创建的任务中当前状态为启用状态的任务,监控是否到达该任务的预设启动时刻;并在预设启动时刻到达时,将该任务作为待执行任务添加到任务表中。
进一步的,上述任务分发装置,如图7所示,还可以包括:
状态修改模块550,用于修改任务表中该待执行任务的任务执行状态为正在执行状态。
进一步的,状态修改模块550,还用于在接收到任务执行器返回的表示该待执行任务已执行完成的完成消息后,修改任务表中该待执行任务的任务执行状态为已执行状态。
需要说明的是,本发明实施例提供的一种任务分发装置还可以同时包括添加模块540和状态修改模块550。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器810、通信接口820、存储器830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信,
存储器830,用于存放计算机程序;
处理器810,用于执行存储器830上所存放的程序时,实现如下步骤:
每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;
如果存在,从任务表中获取不大于预设数量的待执行任务;
针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由此可见,本发明实施例提供的一种电子设备,通过每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;如果存在,从任务表中获取不大于预设数量的待执行任务;针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。这样,将不大于预设数量的待执行任务分发给对应任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载,从而实现了将生成合作数据的任务合理的分发给任务执行器。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种任务分发方法。
由此可见,本发明实施例提供的一种计算机可读存储介质,通过每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;如果存在,从任务表中获取不大于预设数量的待执行任务;针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。这样,将不大于预设数量的待执行任务分发给对应任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载,从而实现了将生成合作数据的任务合理的分发给任务执行器。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种任务分发方法。
由此可见,本发明实施例提供的一种包含指令的计算机程序产品,通过每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,待执行任务为按照其预设启动时刻,在预设启动时刻到达时,添加到任务表中的;如果存在,从任务表中获取不大于预设数量的待执行任务;针对获取的每个待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。这样,将不大于预设数量的待执行任务分发给对应任务执行器,避免了将大量的超出任务执行器处理能力的待执行任务同时分发给任务执行器,减小了任务执行器的负载,从而实现了将生成合作数据的任务合理的分发给任务执行器。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种任务分发方法,其特征在于,所述方法包括:
每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,所述待执行任务为按照其预设启动时刻,在所述预设启动时刻到达时,将数据提供商的服务端针对需要生成的合作数据创建对应的任务添加到任务表中,所述预设启动时刻是根据合作方获取合作数据的时刻以及生成该合作数据所需的时间预先设置的;
如果存在,从所述任务表中获取不大于预设数量的所述待执行任务;
针对获取的每个所述待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由所述任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
2.根据权利要求1所述的方法,其特征在于,采用如下步骤将已创建的任务作为待执行任务添加到所述任务表中:
针对已创建的任务中当前状态为启用状态的任务,监控是否到达该任务的预设启动时刻;
在所述预设启动时刻到达时,将该任务作为待执行任务添加到所述任务表中。
3.根据权利要求1所述的方法,其特征在于,所述将该待执行任务分发给用于执行该待执行任务的任务执行器,包括:
获取该待执行任务的任务信息中的执行器标识;
将该待执行任务分发给所述执行器标识表示的任务执行器。
4.根据权利要求1所述的方法,其特征在于,在所述将该待执行任务分发给用于执行该待执行任务的任务执行器之后,所述方法还包括:
修改所述任务表中该待执行任务的任务执行状态为正在执行状态。
5.根据权利要求4所述的方法,其特征在于,在所述修改所述任务表中该待执行任务的任务执行状态为正在执行状态之后,所述方法还包括:
在接收到所述任务执行器返回的表示该待执行任务已执行完成的完成消息后,修改所述任务表中该待执行任务的任务执行状态为已执行状态。
6.一种任务分发装置,其特征在于,所述装置包括:
扫描模块,用于每隔预设扫描周期扫描任务表中是否存在待执行任务,其中,所述待执行任务为按照其预设启动时刻,在所述预设启动时刻到达时,将数据提供商的服务端针对需要生成的合作数据创建对应的任务添加到任务表中,所述预设启动时刻是根据合作方获取合作数据的时刻以及生成该合作数据所需的时间预先设置的;
获取模块,用于如果存在,从所述任务表中获取不大于预设数量的所述待执行任务;
分发模块,用于针对获取的每个所述待执行任务,将该待执行任务分发给用于执行该待执行任务的任务执行器,由所述任务执行器通过执行该待执行任务生成需要提供给合作方的合作数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
添加模块,用于采用如下步骤将已创建的任务作为待执行任务添加到所述任务表中:
针对已创建的任务中当前状态为启用状态的任务,监控是否到达该任务的预设启动时刻;并在所述预设启动时刻到达时,将该任务作为待执行任务添加到所述任务表中。
8.根据权利要求6所述的装置,其特征在于,所述分发模块,具体用于获取该待执行任务的任务信息中的执行器标识;并将该待执行任务分发给所述执行器标识表示的任务执行器。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
状态修改模块,用于修改所述任务表中该待执行任务的任务执行状态为正在执行状态。
10.根据权利要求9所述的装置,其特征在于,所述状态修改模块,还用于在接收到所述任务执行器返回的表示该待执行任务已执行完成的完成消息后,修改所述任务表中该待执行任务的任务执行状态为已执行状态。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
CN201711482895.7A 2017-12-29 2017-12-29 一种任务分发方法、装置及电子设备 Active CN108132836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711482895.7A CN108132836B (zh) 2017-12-29 2017-12-29 一种任务分发方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711482895.7A CN108132836B (zh) 2017-12-29 2017-12-29 一种任务分发方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108132836A CN108132836A (zh) 2018-06-08
CN108132836B true CN108132836B (zh) 2021-10-22

Family

ID=62394017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711482895.7A Active CN108132836B (zh) 2017-12-29 2017-12-29 一种任务分发方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108132836B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829503A (zh) * 2018-06-27 2018-11-16 泰康保险集团股份有限公司 任务调度方法、装置、系统、介质和电子设备
CN109766201A (zh) * 2019-01-04 2019-05-17 中国联合网络通信集团有限公司 任务分发方法、服务器、客户端和系统
CN112379986B (zh) * 2020-11-16 2023-12-12 北京字跳网络技术有限公司 任务处理方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902646A (zh) * 2013-12-27 2014-07-02 北京天融信软件有限公司 一种分布式任务管理系统与方法
CN105677469A (zh) * 2016-01-06 2016-06-15 北京京东世纪贸易有限公司 定时任务执行方法及装置
CN106557363A (zh) * 2016-12-05 2017-04-05 广发证券股份有限公司 一种大数据任务调度的系统以及方法
CN106598705A (zh) * 2015-10-15 2017-04-26 阿里巴巴集团控股有限公司 一种异步任务的调度方法、装置、系统以及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460423B2 (en) * 2014-04-16 2016-10-04 International Business Machines Corporation Task prioritization and optimization using interconnected data sources
US20150324229A1 (en) * 2014-05-09 2015-11-12 International Business Machines Corporation Propagation of task progress through the use of coalesced time intervals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902646A (zh) * 2013-12-27 2014-07-02 北京天融信软件有限公司 一种分布式任务管理系统与方法
CN106598705A (zh) * 2015-10-15 2017-04-26 阿里巴巴集团控股有限公司 一种异步任务的调度方法、装置、系统以及电子设备
CN105677469A (zh) * 2016-01-06 2016-06-15 北京京东世纪贸易有限公司 定时任务执行方法及装置
CN106557363A (zh) * 2016-12-05 2017-04-05 广发证券股份有限公司 一种大数据任务调度的系统以及方法

Also Published As

Publication number Publication date
CN108132836A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
KR101344203B1 (ko) 프레즌스 서버로부터 발행된 프레즌스 정보를 만료시키는 시스템 및 그 방법을 수행하는 명령어들을 포함하는 컴퓨터판독가능 매체, 프레즌스 서버에 프레즌스 정보를 발행하는 시스템
KR101414337B1 (ko) 단일의 요청으로 다수의 프레즌스 발행들을 업데이트하기 위한 시스템 및 그 방법을 수행하는 명령어를 포함하는 컴퓨터 판독가능 매체, 단일의 요청으로 다수의 발행 유형들을 구독하기 위한 시스템
JP6514699B2 (ja) リソースへの繰返しアクセスについてリソースオーナーから認可を要求する要求のバッチ処理の、サードパーティによる実行の容易化
US6591279B1 (en) System and method for computer-based notifications of real-world events using digital images
CN108156252B (zh) 一种数据访问方法、装置、服务器及客户端
CN108132836B (zh) 一种任务分发方法、装置及电子设备
KR20140035531A (ko) 멤버 리스트를 갖는 모음들로 발행되는 프레즌스 정보로의 액세스를 수정하는 방법 및 상기 방법을 수행하기 위한 명령어들을 포함하는 컴퓨터 판독가능 매체
US10466942B2 (en) Information processing system, method for controlling information processing system, and storage medium
CN107026879B (zh) 一种数据缓存方法及后台应用系统
CN107786631B (zh) 一种内容发布方法、装置及电子设备
CN113364853A (zh) 一种业务服务系统、业务请求方法及网关设备
CN111159269B (zh) 一种数据处理方法、装置及系统
CN110838971B (zh) 消息发送方法、装置、电子设备及存储介质
US9665732B2 (en) Secure Download from internet marketplace
CN111416844A (zh) 一种服务的启停方法、系统、装置及存储介质
CN111355765A (zh) 一种网络请求的处理、发送方法及装置
CN109446445B (zh) 一种资源获取方法及装置
CN109391658B (zh) 一种账号数据同步方法及其设备、存储介质、终端
KR20140016904A (ko) 유니버셜 플러그 앤 플레이 홈 네트워크 환경에서 연락처 정보를 관리하는 방법 및 시스템
CN112653736B (zh) 一种并行回源方法、装置及电子设备
CN113542418A (zh) 文件管理方法、装置、电子设备及存储介质
CN113315689B (zh) 信息处理方法、系统、电子设备和可读存储介质
CN110933070A (zh) 一种用户识别方法、系统、设备及计算机可读存储介质
US20080222210A1 (en) Efficiently handling information on changes to a uddi registry including those resulting in virtual deletes
CN111400327B (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
GR01 Patent grant
GR01 Patent grant