CN108139926A - 后台作业处理框架 - Google Patents
后台作业处理框架 Download PDFInfo
- Publication number
- CN108139926A CN108139926A CN201680056872.7A CN201680056872A CN108139926A CN 108139926 A CN108139926 A CN 108139926A CN 201680056872 A CN201680056872 A CN 201680056872A CN 108139926 A CN108139926 A CN 108139926A
- Authority
- CN
- China
- Prior art keywords
- scheduler
- job
- server system
- demand
- execution
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
所描述的技术涉及调度企业网络应用中的多个类型的作业。处理系统配置具有多个作业条目的作业数据库,并且并发地、彼此独立地执行多个作业调度器。每个作业调度器被配置成调度作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行。处理系统还使得实行被所述多个调度器中的任何调度器调度以供执行的作业。还提供了方法和计算机可读介质的实施例。
Description
对相关申请的交叉引用
本申请要求2015年7月30日提交的印度专利申请号2344/DEL/2015的优先权权益,该印度专利申请的全部内容通过引用并入本文。
背景技术
许多企业软件应用被设计为基于网络的应用(“网络应用”),使得它们可以从任何地方和/或使用可以运行网络浏览器的几乎任何处理设备来访问。网络应用包括使用协议(包括HTTP协议)彼此通信的客户端侧组件和服务器侧组件。网络应用的客户端侧组件典型地负责通过借由用户的访问设备上的用户接口向用户呈现(例如,显示)信息、接收用户输入等等来处置用户接口。服务器侧组件负责包括以下的任务:自己生成信息或者从数据源获取信息以便依照所接收的输入呈现给用户。
企业网络应用典型地运行许多不同类型的后台作业,所述后台作业经受各种资源和时间约束。例如,可能要求被主要设计成为企业的投资顾问提供服务的投资者关系应用(“IR应用”)支持并发作业以用于处置来自多个用户的用户接口输入、从外部源接收当前投资信息、下载投资调研报告、接收关于金融产品的估计信息、处理投资预警、电子邮件、存录等等。典型的作业混合在应用方面和/或在时间方面以许多方式变化,包括作业的持续时间、特定类型作业的数目、作业的发生频率等等。存在数个调度框架以用于调度作业以供执行。然而,随着具有不同类型作业和最终用户需要的应用的演化,仍然期望用于处置各种作业混合的改进的调度框架。
版权声明
该专利文档的部分公开内容包含受到版权保护的素材。版权所有者并不反对任何人对专利文档或专利公开内容的拓制,因为它出现在专利与商标局的专利文件或记录中,但是以其它方式保留无论什么的所有版权。
发明内容
根据一些示例实施例,提供了一种服务器系统,包括至少一个存储器以及具有至少一个处理器的处理系统。处理系统配置具有多个作业条目的作业数据库,并且并发地、彼此独立地执行多个作业调度器。每个作业调度器被配置成调度作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行。处理系统还使得实行被所述多个调度器中的任何调度器调度以供执行的作业。
所述多个调度器可以包括操作以调度根据请求式(on-demand)基础的第一类型的作业的请求式调度器、操作以调度以比预定持续时间小的间隔重复发生的第二类型的作业的短间隔调度器、以及操作以调度在预定特定时间处或以比预定持续时间大的间隔的第三类型的作业的已调度作业调度器。请求式调度器和短间隔调度器基于相应计时器而周期性地执行,并且分别使得执行第一类型和第二类型的作业,而没有附加的调度步骤。第三类型的作业依照调度算法来执行。
可以根据要以其来执行作业的紧迫度和/或频率来将作业确定成对应于所述不同类型的作业中的一个。
请求式作业调度器可以至少包括高优先级调度器和低优先级调度器,其中高优先级调度器被配置有比低优先级调度器更大的作业处理能力。请求式作业调度器可以被配置成将第一数目的线程分配给高优先级作业调度器并且将第二数目的线程(比第一数目的线程少)分配给低优先级作业调度器。
高优先级作业调度器和低优先级作业调度器可以各自分别被配置成访问作业数据库中的作业条目,将对应于所检索的作业条目的作业添加到存储器中的队列,并且使得从存储器中的队列供给作业。
高优先级作业调度器可以被配置成在检索和添加之前确定其当前处理容量是否,并且仅在确定处理容量处于指定阈值以上的情况下才执行检索和添加。当前处理容量可以基于与高优先级作业调度器相关联的存储器中的队列的当前占用来确定。
可以以第一持续时间的间隔来调用短间隔作业调度器,其中第一持续时间基于多个作业配置的已配置执行间隔来确定。执行间隔可以在包括所述多个作业配置的XML文件中指定。
已调度任务调度器被配置成使得在根据调度算法所确定的时间处执行作业。
每个作业可以包括实现执行方法的对象,其中所述多个调度器中的对应调度器调用执行方法以便运行作业。
所述多个调度器可以由相同的Windows®服务来繁衍。所述调度器中的每一个可以被配置成传输心跳,其中Windows服务基于心跳来确定所述调度器中的每一个的健康。
所述调度器中的每一个被实现为具有相应地配置的线程池的代理。
另一示例实施例提供了一种方法,所述方法包括在存储器中配置具有多个作业条目的作业数据库,所述存储器可通信地耦合到具有至少一个处理器的处理系统。所述方法还包括在处理系统上并发地、彼此独立地执行多个作业调度器,每个作业调度器被配置成调度作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行。仍然进一步地,所述方法包括使得实行被所述多个调度器中的任何调度器调度以供执行的作业。
另一示例实施例提供了一种具有存储在其上的指令的非暂时性计算机可读存储介质,所述指令在由具有至少一个处理器的处理系统执行时使处理系统实行操作。所述操作包括在可通信地耦合到处理系统的存储器中配置具有多个作业条目的作业数据库。所述操作还包括并发地、彼此独立地执行多个作业调度器,每个作业调度器被配置成调度作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行。仍然进一步地,所述操作包括使得实行被所述多个调度器中的任何调度器调度以供执行的作业。
提供该发明内容来以简化形式引入以下在具体实施方式中进一步描述的概念的选集。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围;相反,该发明内容旨在提供对在该文档中描述的主题的概述。因而,将领会到,以上描述的特征仅仅是示例,并且本文描述的主题的其它特征、方面和优点将从以下具体实施方式、附图和权利要求书而变得显而易见。
附图说明
图1例示了依照一些实施例的其中可以运行企业网络应用(诸如示例IR应用)的示例计算环境;
图2示意性地例示了根据一些实施例的图1中所示的调度框架的一些方面;
图3例示了在一些示例实施例中可以用于图2中所示的调度框架的示例类模型;
图4例示了根据一些实施例的用于实现系统中的每个后台作业的抽象类和接口类;
图5例示了根据一些实施例的用于针对请求式作业的调度器的类框架;
图6是根据一些实施例的用于请求式调度器代理的执行环境的示意性例示;
图7例示了根据一些实施例的用于请求式调度器的过程;
图8例示了根据一些实施例的供短间隔作业调度器使用的示例XML配置文件;
图9例示了根据一些实施例的由短间隔调度器执行以配置其计时器点火间隔的过程的流程图;
图10例示了根据一些实施例的用于针对短间隔调度器的过程的流程图;
图11例示了根据一些实施例的用于已调度代理的示例XML配置文件的一部分;
图12例示了根据一些实施例的可以由已调度代理用于使用和/或适配于第三方调度器的示例调度器类;
图13示出了根据一些实施例的作业类型到机器的映射的示例表格;以及
图14示出了根据一些实施例的用于图1中所示的系统的硬件架构的示例框图。
具体实施方式
本文描述的实施例涉及调度企业网络应用中的多个类型的作业。在一些示例实施例中,开启多个调度器,每个调度器被编程为调度与其它调度器不同的作业类型。通过每个并发调度器与其它调度器独立地操作以改进(例如,最优地执行)具有某些常见时序要求和/或其它常见特性的后台作业的调度,可以更加高效地调度整个作业混合以供执行(例如,以由处理器运行),同时满足每一类型的作业的时间约束。这可以实现优于常规调度技术的显著效率增益,在常规调度技术下,在应用中,许多类型的作业是由单个类型的调度器处置的。
本文描述的实施例可以用于改进企业网络应用的总体性能,所述企业网络应用诸如但不限于,以上提及的示例IR应用。如上文所提及,IR应用可以具有在任何特定时间处并发执行的许多类型的作业。例如,在运行网络应用的服务器系统上,众多后台作业可以开启以便处置与许多客户端侧用户接口的通信。其它作业可以包括获取、处理和递送来自外部服务的金融信息、数据库查询、调研报告、估计、新闻、预警等;电子邮件发送和接收;文件发送和下载;存录;以及系统维护等。
图1例示了依照一些实施例的其中可以运行企业网络应用(诸如,示例IR应用)的示例计算环境100。在计算环境100中,客户端系统102和服务器系统104通过网络108彼此通信以便使得能够使用网络应用,诸如例如IR应用。应当领会到,网络108可以包括互连计算设备的网络,诸如互联网。网络108还可以包括局域网(LAN)和/或包括客户端系统102与服务器系统104之间的点对点连接。
网络应用包括在客户端系统102上执行的客户端侧网络应用组件(“客户端侧应用”)110以及在服务器系统104上执行的服务器侧网络应用组件(“服务器侧应用”)112。客户端侧应用110可以在用户接口应用114内执行,用户接口应用114诸如例如浏览器114。作为用户接口和/或着陆页面(例如,在用户访问IR应用时出现的第一页面)操作的仪表板128可以是客户端侧网络应用110的一部分。仪表板128可以例如在相应窗口小部件中提供针对网络应用的各种方面的总结信息。服务器侧应用112可以由服务器系统104的网络服务器116和/或应用服务器118执行。网络服务器116执行诸如以下的功能性:实现HTTP协议以及经由HTTP与客户端系统110中的网络浏览器114(在下文进一步详细地描述)通信。涉及网络应用的数据项目——诸如例如配置和/或执行数据、用户访问等——可以存储在服务器系统104的数据库120中。应用服务器118可以例如执行服务器侧(或“后端”)应用服务。在执行网络应用时,网络服务器116和/或应用服务器118可以通过网络108访问一个或多个外部数据源122以便获得信息。在一些实施例中,网络服务器116和应用服务器118可以作为一个进程(或者进程的相同群组)来操作。
客户端系统102可以包括用于执行处理的软件组件,所述处理涉及根据多个单页面应用(SPA)或其它架构定义的应用。作为非限制性示例,客户端系统102可以具有网络浏览器应用114,至少包括渲染模块、联网模块和JavaScript®模块(没有分别示出)。渲染模块可以实现用于网页的图形显示和渲染的功能性。它可以例如生成图形数据,所述图形数据对应于定义由网络浏览器114处理的网页的HTML和/或DOM。潜在地在通过客户端系统102的操作系统的进一步修改/变换之后,该图形数据可以显示在客户端系统102的显示器上。替换地或附加地,每当在该文档中描述为客户端系统102渲染/显示网页时,渲染/显示模块可以执行涉及网页的渲染/显示的功能性。联网模块可以实现HTTP协议,并且用于处置服务器系统104中的网络服务器116与客户端系统102之间的各种HTTP消息。替换地或附加地,每当在该文档中描述为客户端系统102使用HTTP进行通信时,联网模块可以处置这样的通信的HTTP方面。JavaScript模块可以用于执行JavaScript脚本、操控JavaScript对象、修改在网络浏览器应用114处加载的网页的DOM、以及实行涉及JavaScript的其它功能性。JavaScript模块可以例如是JavaScript引擎、JavaScript虚拟机、JavaScript运行时、或者能够执行JavaScript指令的任何其它类型的软件模块。替换地或附加地,每当在该文档中描述为客户端系统102执行涉及JavaScript的功能性时,这样的功能性可以由JavaScript模块来处置。
调度框架124可以用于调度处置网络应用的各方面的各种作业,以及处置涉及服务器系统104的系统任务的其它作业。例如,网络应用的各种部分可以向作业队列和/或作业数据库126中写入条目,调度框架124根据实施例将从所述作业队列和/或作业数据库126中供给那些作业。
尽管在图1中示出一个客户端系统102,但是将理解到,服务器系统104可以与任何数目的客户端系统(诸如,客户端系统102)通信,以便向那些客户端系统的用户提供涉及网络应用的服务。而且,尽管示出为一个系统104,但是本领域技术人员将理解到,服务器系统可以包括可通信地互连的任何数目的单处理器和/或多处理器计算机。在一些实施例中,服务器系统104可以在服务器农场和/或云服务环境中运行。服务器系统104的组件,诸如网络服务器116、应用服务器118、数据库120、服务器侧网络应用112、调度框架124和作业队列/作业数据库126可以相应地分布在多个处理器和/或计算机之上。
图2示意性地例示了根据一些实施例的图1中所示的调度框架124的一些方面。调度框架200包括彼此并发地运行的至少三个调度代理204、206和208。调度代理204、206和208中的每一个被配置成处置与其它调度代理所处置的作业的类型不同的特定类型或类型群组的作业。在一些实施例中,调度代理204、206和208被配置成处置第一、第二和第三作业类型群组(一个或多个作业类型中的每一个)使得在调度代理之间不存在作业类型方面的重叠。处置作业包括基于在作业队列/作业数据库(例如,图1中的126)中针对要执行的特定作业所找到的条目而使得由处理器执行该特定作业。例如,调度器204-208中的一个可以通过从作业队列126检索用于文件下载作业的条目并且使得在处理器上执行对应文件下载作业来处置作业队列126中的作业。调度器204-208可以通过自己开始或者使得帮助者进程开始在所选处理器上执行作业来使得执行所述作业。
调度代理204被配置成处置请求式作业,并且将在本文中称作请求式调度代理(或者请求式调度器)204。请求式调度器204被配置成处置请求式作业。也就是说,请求式调度器204被配置成处置应当在“尽可能快”(例如,“现在或者尽可能快地运行”)的基础上进行处理的作业。典型地,在诸如IR应用之类的环境中,用户接口交互要求在请求式的基础上进行处理。例如,可以驱动网络应用以便最小化由用户在与用户接口(例如,仪表板128)交互时所感知的响应时间,并且因而将要求频繁地并且立刻或近乎立刻地(例如,以最小延迟)处置用户接口输入。由用户经由用户接口发起的示例作业可以包括报告的生成、和/或调研报告下载、响应于用户请求的pdf装订的作业等等。
调度代理206在本文中称作短间隔调度代理(短间隔调度器),并且被配置成处置要求在相对短的间隔中重复运行的作业。例如,发送和接收电子邮件、向日志文件写入(例如,存录用户交互)、从所订阅的服务频繁地下载更新的信息、更新显示在仪表板128上的多个窗口小部件上的来自外部数据源的信息等。
调度器代理208在本文中称作已调度代理。已调度代理被配置用于处置相对频繁地运行的作业。这些可以包括可以在未来一时间被调度的一次作业以及以相对大的重复间隔(例如,数小时)运行的重复作业。示例已调度任务可以包括系统清理作业、网络应用的每日备份、搜索(例如,包括在每小时或每天的间隔中构建索引,基于此可以执行无文本搜索)。
代理204-208是由单个进程在系统和/或网络应用启动期间繁衍的。在示例实施例中,在网络服务器104启动服务器侧网络应用(例如,处理示例IR应用的服务器侧应用)时开启的Windows ServicesTM作业——主机202——繁衍三个调度器204-208。主机202可以随后操作以在接收到用户命令和/或网络应用关断时停止调度器204-208。当多个作业服务器存在时,如企业系统中通常的情况那样,通过单个进程繁衍代理204-208使得部署和配置更容易,并且由此改进可维护性。具有单个进程还帮助基于需要而经由集中式配置(而不是有条件的部署)来在机器上启用或禁用特定类型的代理204-208,并且对基于要求进行调节给予了更多灵活性。
调度器204-208中的每一个可以以可配置的间隔有规律地与数据库210通信或者向数据库210存录条目。系统(或主机102)可以使用这些通信和/或条目作为心跳机制来监控每一个调度器的状态。例如,如果任何特定的调度器没能在可配置的间隔内更新数据库210处的对应心跳216,以规律间隔监控数据库的主机102可以确定该特定调度器不再有效,并且可以启动对应调度器的实例。
数据库210还可以包括作业条目218。作业条目218表示要执行的作业。用于特定作业的条目可以作为数据库条目处于数据库210中和/或处于一个或多个作业队列中。例如,在网络应用(例如,网络服务器、应用服务器、电子邮件服务器、存录应用)中操作的每一个作业可以向数据库210中录入(或者向数据库10中的作业队列中队列化)条目,所述条目表示要求运行的作业。每个条目可以例如标识作业的类型(例如,作业类型标识符)以及用于执行作业所要求的参数(如果有的话)(例如,要下载的文件的位置和文件名,从队列发送/接收电子邮件不要求参数等)。
调度器204-208中的至少一些由计时器212驱动。例如,请求式调度代理204和短间隔调度代理206二者都由经配置的计时器点火来触发。204和206中的每一个在其相应计时器点火时执行或者使得执行其被配置用于的作业。计时器点火可以被视为代理204和206查看是否可以处理更多作业的检查点。
然而,调度器208是已调度的,因为它依照调度算法来确定用于其每一个作业的执行时间。在一些示例实施例中,已调度代理208依赖于现成的调度组件,诸如例如Quartz.Net®。适配器214可以用于与现成的调度组件对接,并且分离的数据库215可以用于已调度作业(例如,以用于保持针对已调度作业的作业条目)。
图3例示了在一些示例实施例中可以用于调度框架200的示例类模型。调度器204-208中的每一个都是从抽象代理类302导出的。抽象类302提供用于使心跳计时器312以及方法314和316分别开启心跳计时器并且检查心跳计时器是否已期满。提供代理类型318使得可以关于是请求式、短间隔还是已调度代理来标识代理204-208中的每一个。抽象类302还提供了运行方法320,所述运行方法320通过从抽象类导出的类中的每一个来实现以便运行对应的调度器。
请求式调度代理204可以依照从抽象类302导出的请求式代理类304来创建。请求式代理类304包括计时器322、高优先级作业管理器324和低优先级作业管理器326。高优先级作业管理器和低优先级作业管理器的分离帮助避免某些低优先级作业的优先购买权或互斥等待,即使是在有大量的高优先级作业要运行时。高优先级作业管理器和低优先级作业管理器的操作在下文进一步描述。
短间隔调度代理206可以依照短间隔调度类306来创建。短间隔代理类306包括计时器332、要执行的作业的列表334和执行总结336。代理可以在执行总结336中维护所执行的作业的列表以及由每个作业完成的工作量。执行总结336使得能够由代理来缓冲作业的执行细节并且然后在后台批量写入数据库。因为短间隔作业典型地是非常频繁运行的作业,所以在数据库中实时更新其状态将增加显著量的网络业务量并且将使代理减慢。
短间隔代理类中的计时器可以是预配置的或者可以随时间动态地改变。在基于所配置的重复间隔来确定是时候运行特定作业类型(例如,电子邮件发送/接收作业)时,短间隔调度器可以对作业数据库和/或电子邮件队列进行轮询以便确定是否存在要发送或接收的任何待定电子邮件并且相应地繁衍一个或多个任务以处置要发送或接收的电子邮件。
已调度代理208可以依照已调度代理类308来创建。已调度代理类308包括用于使用第三方调度器(诸如Quartz.net)用于调度的调度器342。调度可以包括使用复杂算法来确定用于每一个作业的最优已调度时间。配置中的作业类型id 344帮助石英作业适配器(QuartzJobAdapter)实例化对应的作业类。可以在作业类型id与类之间维护映射以在配置中进行实例化。已调度代理还可以包括要移除未经授权的作业的方法346。例如,当初始化代理时,这样的移除可以是基于能够在从配置供应的机器上运行(例如,授权在机器上运行)的作业的列表。
图4例示了接口类iJob 402以及实现iJob 402类的抽象类作业404。要在服务器系统104上运行的每个作业被要求实现接口iJob 402和/或从抽象类404承继。然后,调度器可以通过调用其所实现的运行(Run)方法来运行作业。
图5例示了用于请求式调度器代理204的类框架。请求式代理(onDemandAgent)类502可以用于创建请求式调度器代理204。如上文关于图3中的类304所指出的,请求式代理类502可以包括两个作业管理器——高优先级作业管理器504和低优先级作业管理器506。
高优先级作业管理器504和低优先级作业管理器506可以各自使用作业管理器类510来创建。高优先级作业管理器和低优先级作业管理器代表请求式调度器代理执行所有作业处理。通过在请求式作业的类内具有多个优先级水平,实施例使得能够为大多数时间关键的作业提供改进的响应时间。例如,某些用户接口请求,诸如在用户需求时的实时或者近乎实时的金融信息的显示,可以被优先化为优于其它请求式作业,比如若干文件的pdf装订以及大文件的下载。
当然,除此之外,或者作为替换方案,请求式作业可以根据除了仅仅是作业类型之外的准则来优先化。例如,用于特定用户或者特定用户类的pdf装订作业可以被指定为低优先级请求式作业,而用于另一用户类的相同类型的作业可以被指定为高优先级。这提供了可以通过配置实现的大量调度灵活性。
作业管理器类510字段作业优先级512可以用于表示管理器是高优先级作业管理器还是低优先级作业管理器。每个管理器还可以配置有它能够访问并且它从其中检索作业以供执行的作业队列514。针对每一个类型的管理器指定最大并发水平516。并发水平表示管理器被授权以(或者被配置成)开启的并发线程的数目。事实上,可以通过为高优先级作业代理提供比低优先级作业代理更高的并发水平来控制优先级。作业管理器510可以维护共享任务厂518,其被传递给每一个作业运行器512实例。作业运行器可以在内部使用来自共享任务厂的任务以便执行作业。这可以帮助作业管理器510监控所创建的任务的数目及其状态,并且由此控制并发性。任务调度器520可以是配置类,其中可以配置最大并行度,其然后被供应给任务厂518。
作业管理器类510还被提供有用于装填队列的方法522和用于处理作业的方法524,管理器随后从所述队列获得作业以供执行。
作业管理器可以利用由作业运行器类512表示的分离作业运行器来运行每一个作业。每一个作业管理器可以具有并发地处理作业的数个作业运行器。由作业管理器开启的作业运行器的数目可以限于针对该作业管理器所配置的最大并发水平。作业运行器类512提供用于作业的同步执行的方法532,其中运行作业的特定作业运行器将等待直至该作业被完成,以及用于作业的异步执行的方法534,其中特定作业运行器将在目前作业被完成之前返回。对于长运行作业,诸如文件下载,异步执行可以是合期望的。每一个作业运行器中的用作业状态更新作业队列(updateJobQueueWithJobStatus)536利用执行状态——成功/失败、完成时间、代理、机器名等——更新回对应的作业队列条目。这可以由作业的请求者用来检查作业是否完成。例如,可以使用对应作业运行器512中的updateJobQueueWithJobStatus 536来向请求创建报告的用户接口组件告知报告创建的完成。
图6是用于请求式调度器代理的执行环境600的示意性例示。可以是服务器系统104的部分的执行环境600可以包括可通信地连接的一个或多个处理单元602(例如,处理单元602a和602b)。处理单元可以是相同处理器的单独核,或者是该相同计算机上或者物理上分离的计算机上的分离处理器。每个处理单元可以能访问分离的存储器和/或共同的存储器。每个处理单元602可以能访问用于请求式作业的一个或多个存储器中的队列610(例如,存储器中的队列610a和610b)。
每个处理单元602可以具有在其上运行的请求式调度器代理608(例如,代理608a和608b)和/或可以具有在其上运行的用于请求式作业的高优先级作业管理器和一个或多个低优先级作业管理器中的一个或多个。
配置数据库604可以提供一个或多个作业表/队列,其中由各种应用来写入要执行的作业。调度器可以从这些作业表/队列拾取要运行的作业。
XML配置606可以提供用于作业调度等的配置。例如,XML配置可以指定每5000毫秒执行要写入日志的作业。当适当的调度器确定是时候运行要写入日志的作业时,它从数据库604确定要写入的实际存录条目。
在一些实施例中,数据库640由调度框架中的所有处理单元602共享。另一方面,用于请求式作业的存储器中的队列可以处在每个处理单元的本地存储器中。
图7例示了根据一些实施例的可以由请求式调度器代理用于调度请求式作业的过程700。例如,高优先级作业管理器和低优先级作业管理器中的每一个可以执行过程700。
过程700可以连续地由运行的高优先级作业管理器或者运行的低优先级作业管理器基于计时器点火来执行。例如,过程700由每一个高或低优先级作业管理器在该作业管理器启动时进入。在进入过程700之后,作业管理器可以等待计时器点火(例如,指示计时器期满的信号)。在示例实施例中,请求式作业计时器被配置在5秒处。也就是说,请求式作业计时器将每5秒点火(例如,期满)直至终止。
在操作702处,接收到计时器点火信号,并且处理请求式作业的迭代开始。如上文所指出的,计时器可以是由特定处理单元上的所有请求式作业调度代理和/或请求式作业管理器共享的计时器,或者在一些实施例中,每一个请求式调度代理可以具有其自己的计时器。
在操作704处,确定由该请求式作业管理器使用的存储器中的队列中的空余容量的量。每个作业管理器维持一个或多个存储器中的队列,它(作业管理器)从所述存储器中的队列检索要由作业运行器运行的作业。存储器中的队列的大小可以是可配置的。还可以存在与每个存储器中的队列相关联的可配置的再装填阈值,表示在对应作业管理器利用来自作业数据库的作业再装填存储器中的队列之前所占据(即,由作业填充)的存储器中的队列的最小部分。
在操作706处,比较所确定的存储器中的队列的空余容量与用于作业管理器的并发阈值。如上文所述,可以针对高优先级请求式作业管理器和低优先级请求式作业管理器设置分离的并发水平。在操作706处,将空余的存储器中的队列的容量的量与用于作业管理器的并发水平相比较。
在操作708处,基于与并发水平比较的空余存储器中的队列容量的量的比较,就是否可以将新的作业添加到存储器中的队列进行确定。
如果708处的确定得出是,则在操作710处,从数据库检索(例如,移除)新作业并且将其添加(例如,写入或队列化)到存储器中的队列。所添加的作业的数目可以至少部分地基于存储器中的队列的容量和/或要使用的队列的容量的已配置的最大部分。
例如,考虑其中用于高优先级作业管理器的并发水平设置在100处的情况,这指示高优先级请求式作业调度器可以具有高达100个并发运行的作业。对应存储器中的队列可以具有最大容量200,指示队列可以一次持有高达200个作业。而且假设在操作704处,确定了空余容量对应于120个作业。
现在,在操作706处之后,做出空余容量与并发水平的比较,可以在操作708处确定的是,可以将高达120个新作业添加到存储器中的队列。可以用那许多个作业填满存储器中的队列的200个作业的全部容量。替换地,配置设置可以指定在任何时间处通过从数据库添加作业而装填不多于120个作业。当提供了从最大容量减低的阈值的这种配置时,仅高达所配置的阈值将被用从数据库检索的作业进行装填。因而,在任何时间处,请求式调度器可以具有某一超出容量,其可以用于运行系统可以允许在没有过完一遍作业数据库的情况下运行的作业,诸如例如通过已经运行的作业创建的附加作业,其要求快速响应时间。
以上过程(过程700)使得调度器代理能够跨分离的处理单元协作以便最优地调度作业。
图8例示了根据一些实施例的供短间隔作业调度器(诸如,短间隔作业调度器206)使用的示例XML配置文件800。例如,在启动时和/或以规律的间隔,短间隔作业代理206可以从存储器读取配置文件800。
配置文件800指定要由短间隔调度代理运行的作业的类型以及应当何时运行这样的作业。可以在一个行条目中指定要运行的每个作业。例如,行条目可以包括作业名称802、作业类型804以及要以其来运行作业的间隔806。
图9例示了过程900的流程图,过程900可以由短间隔调度器(诸如例如,短间隔调度器206)执行以动态地配置其点火间隔。
过程900可以由短间隔调度代理206在启动时和/或以预定规律间隔来执行。当对配置做出改变(诸如例如,通过向XML配置800添加作业)时,也可以调用它。
在进入过程900之后,在操作902处,可以从配置中列出的作业确定最小重复间隔。例如,考虑在图8中的文件800中列出的作业作为示例,用于仪表板队列处理作业的1000毫秒和用于预警分派器作业的1000毫秒可以被确定为提供最小重复间隔。
在操作902处确定最小重复时间之后,短间隔作业计时器可以在操作904处被配置成所确定的时间。
通过在例如添加任何新的作业或者改变现有工作时使得运行过程900,在配置文件中,短间隔作业调度器可以动态地配置其计时器以用于改变作业混合。
图10例示了用于过程1000的流程图,短间隔调度器(诸如,短间隔调度器206)可以执行过程1000以调度作业。
在进入过程1000之后,短间隔调度器可以等待计时器点火。计时器可以是预配置的和/或被动态地配置,如关于图9所述的那样。
在操作1002处,接收指示计时器的点火的信号。在检测到计时器的点火(例如,通过接收对应的信号)时,过程1000进入到过程的其余部分中。
在操作1004处,更新接下来的执行时间。例如,短间隔调度器代理可以在存储器中维持作业列表。列表可以包括用于每个有效的短间隔作业类型的条目以及其接下来的执行时间。在操作1004处,用于每个条目的接下来的执行时间可以被增量有当前短间隔作业计时器的持续时间。例如,如果短间隔作业计时器当前设置为每20秒点火,那么在每次点火时,用于每个条目的接下来的执行时间增量20秒。
在操作1006处,确定任何作业是否具有小于或等于0的执行时间。在一些实施例中,所述确定可以是任何作业是否具有小于或者等于某预定非零阈值的执行时间。
如果在操作1006处针对任何作业的确定是肯定的(即,接下来的执行时间小于或等于0或阈值),那么在操作1008处,短间隔调度器处置每个这样的作业。如上文所指出,处置作业可以包括使得运行作业。在一些示例实施例中,对于要执行的每个作业,可以启动辅助程序以便运行该作业。
在操作1008之后,对于其接下来的执行时间小于或等于0或阈值的作业中的每一个,基于其重复间隔来更新接下来的执行时间。例如,如果一作业被列为具有5000毫秒的重复间隔,那么在其当前启动之后,其接下来的执行时间被设置为5000(或者如果当前的接下来的执行时间已经减量到0以下,那么新的接下来的执行时间可以被设置成补偿减量到0以下的量)。
在操作1010之后,处理的迭代已经完成,并且过程1000可以等待接下来的计时器点火。
图11例示了根据一些实施例的用于已调度代理(诸如,已调度代理208)的示例XML配置文件1100的一部分。例如,在启动时,已调度代理208可以读取XML配置文件1100以确定要调度的作业及其调度参数。
配置文件1100可以包括针对要调度的每个作业的作业描述部分1102和触发信息部分1104。作业描述部分1102可以标识作业名称、作业群组、可以用于标识调度器和/或到调度器的接口(例如,用于Quartz.Net调度器的适配器)的作业类型、以及包括作业类型标识符和这是否为批量作业的作业数据。
触发部分1104指定要如何触发在对应的作业描述部分1102中标识的作业。
图12例示了可以由已调度代理用于使用和/或适配于第三方调度器(诸如Quartz.Net适配器)的示例适配器类1200。提供适配器增强了系统的可配置性。例如,通过提供适配器,可以通过仅修改适配器而不改变作业等来使用新的和/或附加的调度器。
利用许多调度模块(例如,Quartz.Net),通过如在这些实施例中为调度组件提供更均匀的作业混合,可以实现在调度方面更为高效且一致的性能。这在一些实施例中是可能的,因为即便网络应用可以具有有效的各种作业类型的作业,并发运行的其它调度器(例如,请求式和短间隔调度器)也为具有与调度器所调度的那些明显不同的特性的作业提供调度。实施例还提供了以下优点:针对作业的调度不要求由开发者处置,并且可以在实施例中由框架共同处置,同时要求开发者仅仅提供作业类型。
此外,因为针对每个类型或类型群组提供分离的调度器,所以实施例可以可配置地改变(预配置或动态配置)分配在每个处理单元上的线程的数目,并且由此控制提供给每一作业类型的服务水平。
在实施例中用于运行用户发起的(典型地,在用户联机使用网络应用时)作业(例如,基于用户选择的准则创建报告)的请求式代理典型地需要较高的线程分配,使得用户,使得使用户获得结果的时间合理地短或最优。请求式代理还可以用于分布来自已调度作业的处理负载。例如,假设存在被调度成在每天4:00 PM时运行的作业,其处理要在每天大约相同时间到达的馈送文件中的记录。如果要处理的记录的数目大且未知,通过单个作业处理所有记录是非常低效的。因此,基于要处理的记录的数目,将处理这些记录的某一数目的作业添加到请求式作业队列。因为在一些示例实施例中请求式队列是分布式的,所以这些作业将由有空闲处理作业的任何服务器拾取。因而,可以实现负载的公平合理的分布。
短间隔代理使得能够运行需要非常频繁地运行的作业,而没有调度器或队列的开销。这些典型地包括侦听队列并且在先来先服务的基础上得以处理的作业。这些作业典型地总是以非常短的空闲时间运行。
在一些实施例中,已调度作业代理的另一有利特征是批量化。用于短间隔作业的XML配置文件中的标记“IsBatch”可以用于控制如何执行每一个作业。该标记的默认值可以设置为假,在该情况下,石英作业适配器(QuartzJobAdapter)将具有所配置的作业类型id关键参数的作业队列化到请求式队列中(而不是执行作业)。如果IsBatch标记值为真,则它指示批量作业并且存在牵涉到的单独作业的某种批量化。在该情况下,具有所述作业类型id关键参数的作业立即运行。该作业典型地是成批作业,其基于要处理的项目的数目而将数个作业添加到请求式队列中。
所述实施例在网络应用中特别有利。大多数网络应用要求某种后台处理以从网络服务器卸载CPU密集任务。预警、报告、发送电子邮件、存录等是任何现代网络应用的一些常见特征。该框架处置网络应用所要求的所有种类的作业处理。请求式代理被特别设计成迎合来自联机用户的动态作业请求以在没有长等待时间的情况下给予可能的最佳用户体验。
图13示出了可以在一些实施例中使用的示例机器到作业类型的映射表格1200。映射1300可以由代理在调度期间用来基于特定作业类型而使得仅在某些授权机器上执行作业。未被授权用于特定机器的作业的清理可以由已调度进程来承担,诸如以上关于已调度作业代理所述。
图14示出了根据一些实施例的用于系统100的硬件架构的示例框图。客户端系统1410经由网络1440与服务器系统1400通信。网络1440可以包括互连计算设备的网络,诸如互联网。网络1440还可以包括局域网(LAN)或者可以包括客户端系统102与服务器系统1000之间的点对点连接。
示例客户端系统1410和服务器系统1400可以对应于如在图1中示出的客户端系统102和服务器系统104。也就是说,在图14中描述的硬件元件可以用于实现在本文中参照图1等描述和示出的各种软件组件和动作。例如,客户端系统1410可以包括至少一个处理器CPU1431、至少一个存储器1432、至少一个输入/输出设备I/O 1433、以及用于生成和显示用户接口UI 1434的组件。I/O设备1433可以全部涵盖并且可以包括通信设备,诸如,用于发送和接收数据的收发器(例如,无线收发器、有线收发器)。I/O设备1433还可以包括用于将非暂时性计算机可读存储介质连接到客户端系统1410以便发送和接收数据的接口。
应当领会到,客户端系统1410中的元件的组合可以用于实现在图2中示出的示例网络浏览器应用114。例如,存储器1432可以加载与应用相关联的文件(例如,HTML、XML、JavaScript文件),并且CPU 1431可以用于操作以上讨论的渲染模块、联网模块和JavaScript模块以生成应用。同样地,I/O设备1433可以由联网模块利用以从服务器系统1400取得包括SPA的各种元素。
服务器系统1400还包括用于实现针对服务器系统104的软件元件的各种硬件组件,如在图2中所示。例如,服务器系统1400还可以包括至少一个处理器CPU 1421、至少一个存储器1422和至少一个输入/输出设备I/O 1423的硬件组件。I/O设备1423可以全部涵盖并且可以包括通信设备,诸如,用于发送和接收数据的收发器(例如,无线收发器、有线收发器)。I/O设备1423还可以包括用于将非暂时性计算机可读存储介质连接到服务器系统1400以便发送和接收数据的接口。在一个示例实施例中,客户端系统的I/O设备1433可以经由网络执行与服务器系统的I/O 1423的通信。
类似于客户端系统1410,服务器系统1400可以实现用于生成应用的组件。例如,存储器1422可以用于存储数据库120中的信息以及由网络服务器116和应用服务器118利用的组件和文件。CPU 1421可以在执行对于生成相应模块而言必要的软件时使用,所述模块由客户端系统1410请求并且被传输给客户端系统1410。例如,CPU 1421可以用于生成由应用服务器118创建的必要模块。同样地,I/O设备1423可以由网络服务器116用来将不同的应用元件传输给客户端系统1410。当然,这些示例是非限制性的,并且系统设想到在各种方面中利用硬件元件。
在本文描述的示例中,出于解释而非限制的目的,阐述了具体细节,诸如特定节点、功能实体、技术、协议、标准等,以便提供对所描述的技术的理解。对于本领域技术人员将显而易见的是,可以实践除下文描述的具体细节之外的其它实施例。在其它实例中,省略了公知的方法、设备、技术等的详细描述,以便不以不必要的细节使描述模糊不清。在附图中示出单独的功能块。本领域技术人员将领会到,那些块的功能可以使用单独的硬件电路、与适当编程的微处理器或通用计算机结合地使用软件程序和数据、使用专用集成电路(ASIC)和/或使用一个或多个数字信号处理器(DSP)来实现。软件程序指令和数据可以存储在计算机可读存储介质上,并且当由计算机或其它适合的处理器控件执行所述指令时,计算机或处理器实行所述功能。尽管在下文可能将数据库描绘为表格,但是可以使用其它格式(包括关系数据库、基于对象的模型和/或分布式数据库)来存储和操控数据。
尽管可能以特定的顺序次序描述或者要求保护过程步骤、算法等,但是这样的过程可以被配置成以不同的次序工作。换言之,可能明确地描述或者要求保护的步骤的任何顺序或次序未必指示要求以该次序执行所述步骤。本文描述的过程的步骤可以以任何可能的次序来执行。另外,尽管描述或者暗示为非同时发生(例如,由于一个步骤在另一个步骤之后描述),但是一些步骤可以同时执行。此外,通过其在附图中的描绘对过程的例示并不暗示着所例示的过程排除对其的其它变化和修改,并不暗示着所例示的过程或其任何步骤对于该技术是必要的,并且并不暗示着所例示的过程是优选的。
在将数据(例如,指令序列)运载到处理器时可能牵涉到各种形式的计算机可读介质/传输。例如,数据可以(i)从存储器递送到处理器;(ii)在任何类型的传输介质(例如,有线、无线、光学等)之上运载;(iii)根据众多格式、标准或协议格式化和/或传输,所述格式、标准或协议诸如以太网(或IEEE 802.3)、ATP、蓝牙、和TCP/IP、TDMA、CDMA、3G等;和/或(iv)被加密以确保隐私性或者防止以本领域中公知的各种方式中的任何的欺骗。如在该文档中使用,术语“非暂时性计算机可读存储介质”包括寄存器、高速缓存存储器、ROM、半导体存储器设备(诸如D-RAM、S-RAM或其它RAM)、磁性介质(诸如闪存、硬盘)、磁光介质、光学介质(诸如CD-ROM、DVD或蓝光盘)、或者用于非暂时性电子数据存储的其它类型的设备。如在该文档中使用的术语“处理系统”意指以下中的至少一个:CPU、GPU、ASIC、FPGA或者用于执行指令的其它硬件电路,所述指令诸如例如包括以上描述的网络应用的软件程序。
当在该文档中被描述为“可以”、“能够”或者“可能”执行动作,特征或组件“可以”、“能够”或者“可能”包括在给定上下文中或者适用于给定上下文,给定项目“可以”、“能够”或者“可能”具有给定性质时,或者每当使用牵涉到术语“可以”、“能够”或者“可能”的任何类似短语时,应当理解的是,给定的动作、特征、组件、性质等存在于至少一个实施例中,尽管未必存在于所有实施例中。
尽管已经关于AngularJS描述了所述技术,但这是出于描述的方便而做出的;要理解到,在该文档中描述的技术适用于其它SPA技术、其它网络技术和/或任何其它软件技术的上下文中。
尽管已经结合当前被视为是最实际且优选的实施例的内容描述了所述技术,但是要理解到,所述技术不应限于所公开的实施例,而是相反地,旨在涵盖各种修改和等同布置。
Claims (18)
1.一种服务器系统,包括:
至少一个存储器;以及
具有至少一个处理器的处理系统,所述处理系统被配置成实行操作,所述操作包括:
在所述存储器中配置具有多个作业条目的作业数据库;
并发地、彼此独立地执行多个作业调度器,每个作业调度器被配置成调度所述作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行;以及
使得实行被所述多个调度器中的任何调度器调度以供执行的作业。
2.根据权利要求1所述的服务器系统,其中所述多个调度器包括请求式调度器、短间隔调度器和已调度作业调度器,所述请求式调度器操作以调度根据请求式基础的第一类型的作业,所述短间隔调度器操作以调度以比预定持续时间小的间隔重复发生的第二类型的作业,所述已调度作业调度器操作以调度在预定特定时间处或以比所述预定持续时间大的间隔的第三类型的作业。
3.根据权利要求2所述的服务器系统,其中(1)所述请求式调度器和所述短间隔调度器基于相应的计数器周期性地执行,并且分别使得实行第一类型和第二类型的作业而没有附加调度步骤,并且(2)依照调度算法实行第三类型的作业。
4.根据权利要求1所述的服务器系统,其中,根据要以其来执行作业的紧迫度和/或频率来将所述作业确定成对应于所述不同类型的作业中的一个。
5.根据权利要求1所述的服务器系统,其中,所述多个调度器包括请求式作业调度器,其中所述请求式作业调度器至少包括高优先级调度器和低优先级调度器,并且其中所述高优先级调度器被配置有比所述低优先级调度器更大的作业处理能力。
6.根据权利要求5所述的服务器系统,其中,所述请求式作业调度器被配置成将第一数目的线程分配给所述高优先级作业调度器并且将比第一数目的线程少的第二数目的线程分配给所述低优先级作业调度器。
7.根据权利要求6所述的服务器系统,其中,所述高优先级作业调度器和所述低优先级作业调度器各自分别被配置成:
访问所述作业数据库中的作业条目;
将对应于检索到的作业条目的作业添加到存储器中的队列;以及
使得从所述存储器中的队列供给作业。
8.根据权利要求7所述的服务器系统,其中所述高优先级作业调度器被配置成在所述检索和添加之前确定其当前处理容量是否,并且仅在确定了所述处理容量处于指定阈值以上的情况下才实行所述检索和添加。
9.根据权利要求8所述的服务器系统,其中,所述当前处理容量是基于与所述高优先级作业调度器相关联的所述存储器中的队列的当前占用来确定的。
10.根据权利要求1所述的服务器系统,其中所述多个调度器包括以第一持续时间的间隔调用的短间隔作业调度器,并且其中第一持续时间是基于多个作业配置的已配置执行间隔来确定的。
11.根据权利要求10所述的服务器系统,其中,所述执行间隔是在包括所述多个作业配置的XML文件中指定的。
12.根据权利要求1所述的服务器系统,其中所述多个调度器包括已调度任务调度器,所述已调度任务调度器被配置成使得在根据调度算法所确定的时间处实行作业。
13.根据权利要求1所述的服务器系统,其中每个作业包括实现执行方法的对象,其中所述多个调度器中的对应调度器调用所述执行方法以便运行所述作业。
14.根据权利要求1所述的服务器系统,其中,所述多个调度器是由同一Windows服务繁衍的。
15.根据权利要求14所述的服务器系统,其中所述调度器中的每一个被配置成传输心跳,并且其中所述Windows服务基于所述心跳来确定所述调度器中的每一个的健康。
16.根据权利要求1所述的服务器系统,其中,所述调度器中的每一个被实现为具有相应地配置的线程池的代理。
17.一种方法,包括:
在存储器中配置具有多个作业条目的作业数据库,所述存储器可通信地耦合到具有至少一个处理器的处理系统;
在所述处理系统上并发地、彼此独立地执行多个作业调度器,每个作业调度器被配置成调度所述作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行;以及
使得实行被所述多个调度器中的任何调度器调度以供执行的作业。
18.一种具有存储在其上的指令的非暂时性计算机可读存储介质,所述指令在由具有至少一个处理器的处理系统执行时使所述处理系统实行操作,所述操作包括:
在存储器中配置具有多个作业条目的作业数据库,所述存储器可通信地耦合到所述处理系统;
并发地、彼此独立地执行多个作业调度器,每个作业调度器被配置成调度所述作业数据库中的具有与所述多个作业调度器中的其它作业调度器被配置成调度的作业的类型不同的类型的作业以供执行;以及
使得实行被所述多个调度器中的任何调度器调度以供执行的作业。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2344DE2015 | 2015-07-30 | ||
IN2344/DEL/2015 | 2015-07-30 | ||
US15/220,511 US9870266B2 (en) | 2015-07-30 | 2016-07-27 | Background job processing framework |
US15/220511 | 2016-07-27 | ||
PCT/US2016/044383 WO2017019826A1 (en) | 2015-07-30 | 2016-07-28 | Background job processing framework |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139926A true CN108139926A (zh) | 2018-06-08 |
CN108139926B CN108139926B (zh) | 2022-08-12 |
Family
ID=57882637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680056872.7A Active CN108139926B (zh) | 2015-07-30 | 2016-07-28 | 用于调度网络应用的作业的服务器系统、方法和存储介质 |
Country Status (7)
Country | Link |
---|---|
US (4) | US9870266B2 (zh) |
EP (1) | EP3329369B1 (zh) |
CN (1) | CN108139926B (zh) |
AU (1) | AU2016298207B2 (zh) |
CA (1) | CA2994291C (zh) |
HK (1) | HK1256488A1 (zh) |
WO (1) | WO2017019826A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968401A (zh) * | 2018-09-28 | 2020-04-07 | 北京国双科技有限公司 | 基于Quartz的任务调度方法及装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10908946B2 (en) * | 2016-12-30 | 2021-02-02 | Texas Instruments Incorporated | Scheduling of external block based data processing tasks on a hardware thread scheduler |
US11704302B2 (en) * | 2017-08-08 | 2023-07-18 | Perry + Currier Inc. | Method, system and apparatus for processing database updates |
US11481362B2 (en) * | 2017-11-13 | 2022-10-25 | Cisco Technology, Inc. | Using persistent memory to enable restartability of bulk load transactions in cloud databases |
KR102492996B1 (ko) | 2018-06-08 | 2023-01-31 | 삼성전자주식회사 | 외부 입력을 이용하여 백그라운드 태스크를 처리하는 전자 장치 및 그 저장 매체 |
US11392411B2 (en) | 2019-11-08 | 2022-07-19 | Sap Se | Background job scheduling restrictions |
CN113342482A (zh) * | 2020-03-02 | 2021-09-03 | 中科星图股份有限公司 | 在Kubernetes中实现周期任务调度的方法和装置 |
CN113885956B (zh) * | 2021-09-29 | 2023-08-29 | 北京百度网讯科技有限公司 | 服务部署方法及装置、电子设备和存储介质 |
CN114509986B (zh) * | 2022-01-20 | 2024-04-05 | 武汉朗宇智能科技有限公司 | 一种基于xml文件的跨平台HMI组态配置系统和方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050117584A1 (en) * | 2003-12-01 | 2005-06-02 | Samsung Electronics Co., Ltd. | Multi-channel job scheduling apparatus and method for communication system |
US20070266390A1 (en) * | 2005-10-31 | 2007-11-15 | Mark Emmerich | Automated management of application-specific tasks from the Internet via distributed task manager agents in a local area network |
CN101166208A (zh) * | 2006-10-20 | 2008-04-23 | 北京直真节点技术开发有限公司 | 一种维护作业自动化的方法及系统 |
CN101957780A (zh) * | 2010-08-17 | 2011-01-26 | 中国电子科技集团公司第二十八研究所 | 一种基于资源状态信息的网格任务调度处理器及方法 |
CN102193853A (zh) * | 2010-03-12 | 2011-09-21 | 三星电子株式会社 | 虚拟机监控器及其调度方法 |
CN102387173A (zh) * | 2010-09-01 | 2012-03-21 | 中国移动通信集团公司 | 一种MapReduce系统及其调度任务的方法和装置 |
CN102591708A (zh) * | 2010-12-13 | 2012-07-18 | 微软公司 | 用于提供按需处理和背景处理的体系结构 |
US20130179881A1 (en) * | 2012-01-09 | 2013-07-11 | Microsoft Corporation | Decoupling paas resources, jobs, and scheduling |
US20140237476A1 (en) * | 2013-02-15 | 2014-08-21 | Apple Inc. | Centralized task scheduling |
US20140325523A1 (en) * | 2004-05-11 | 2014-10-30 | International Business Machines Corporation | Scheduling computer program jobs |
CN104462302A (zh) * | 2014-11-28 | 2015-03-25 | 北京京东尚科信息技术有限公司 | 一种分布式数据处理协调方法及系统 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5402350A (en) * | 1991-06-28 | 1995-03-28 | Texas Instruments Incorporated | Scheduling for multi-task manufacturing equipment |
WO1994011810A1 (en) * | 1992-11-13 | 1994-05-26 | Microsoft Corporation | A method and system for marshalling interface pointers for remote procedure calls |
CA2297935A1 (en) * | 1997-07-25 | 1999-02-04 | British Telecommunications Public Limited Company | Scheduler for a software system |
US5964892A (en) * | 1997-08-29 | 1999-10-12 | National Instruments Corp. | General Purpose Interface Bus (GPIB) system and method which provides GPIB call capture and display |
US6477591B1 (en) * | 1998-03-03 | 2002-11-05 | Highground Systems, Inc. | Method and apparatus for storing and copying data via a first path and a second path wherein second path bypasses mirror driver |
US6029174A (en) * | 1998-10-31 | 2000-02-22 | M/A/R/C Inc. | Apparatus and system for an adaptive data management architecture |
US7386586B1 (en) * | 1998-12-22 | 2008-06-10 | Computer Associates Think, Inc. | System for scheduling and monitoring computer processes |
US7266706B2 (en) * | 1999-03-03 | 2007-09-04 | Yottayotta, Inc. | Methods and systems for implementing shared disk array management functions |
JP3877519B2 (ja) * | 2000-12-15 | 2007-02-07 | 株式会社日立製作所 | システム回復方法およびその実施計算機システム並びにその処理プログラムを記録した記録媒体 |
US20030163507A1 (en) * | 2002-02-26 | 2003-08-28 | Zarlink Semiconductor V.N. Inc. | Task-based hardware architecture for maximization of intellectual property reuse |
US7093243B2 (en) * | 2002-10-09 | 2006-08-15 | International Business Machines Corporation | Software mechanism for efficient compiling and loading of java server pages (JSPs) |
US7788226B2 (en) * | 2004-12-30 | 2010-08-31 | Sap Ag | Monitoring availability of applications |
US7823170B2 (en) * | 2005-08-31 | 2010-10-26 | Sap Ag | Queued asynchronous remote function call dependency management |
US7680907B2 (en) * | 2006-07-21 | 2010-03-16 | Barclays Capital Inc. | Method and system for identifying and conducting inventory of computer assets on a network |
US8533696B1 (en) * | 2006-09-29 | 2013-09-10 | Emc Corporation | Methods and systems for allocating hardware resources to instances of software images |
US20100299438A1 (en) * | 2008-01-21 | 2010-11-25 | Gottfried Zimmerman | Online resource server for allowing device control and access to digital content trhough pluggable user interfaces |
US8495182B1 (en) * | 2008-04-02 | 2013-07-23 | Bank Of America Corporation | Scalable systems management abstraction framework |
US20100168912A1 (en) * | 2008-12-29 | 2010-07-01 | Electronics And Telecommunications Research Institute | Method of invoking asynchronous function for controlling robots |
US8665724B2 (en) * | 2009-06-12 | 2014-03-04 | Cygnus Broadband, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
US8813065B2 (en) * | 2010-04-26 | 2014-08-19 | Vmware, Inc. | Microcloud platform delivery system |
US9141422B2 (en) * | 2010-05-18 | 2015-09-22 | Microsoft Technology Licensing, Llc | Plug-in task scheduler |
US8886976B2 (en) | 2011-04-11 | 2014-11-11 | Microsoft Corporation | Management of background tasks |
US8542586B2 (en) * | 2011-09-20 | 2013-09-24 | Telefonaktiebolaget L M Ericsson (Publ) | Proportional bandwidth sharing of the excess part in a MEF traffic profile |
US9092247B2 (en) * | 2012-03-29 | 2015-07-28 | Microsoft Technology Licensing, Llc | Persistent and resilient worker processes |
US9141430B2 (en) * | 2012-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Scheduling mapreduce job sets |
US20130339485A1 (en) * | 2012-06-13 | 2013-12-19 | Motorola Mobility, Inc. | Multi-Threaded Asynchronous Download of a Set of Script files Used in a Web Application |
US9229774B1 (en) * | 2012-07-13 | 2016-01-05 | Google Inc. | Systems and methods for performing scheduling for a cluster |
US9292359B2 (en) * | 2012-07-27 | 2016-03-22 | Intel Corporation | System and method for memory management |
US9058208B2 (en) * | 2012-11-12 | 2015-06-16 | Skymedi Corporation | Method of scheduling tasks for memories and memory system thereof |
JP5660149B2 (ja) | 2013-03-04 | 2015-01-28 | 日本電気株式会社 | 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム |
US9584601B2 (en) * | 2013-08-29 | 2017-02-28 | Telenav, Inc. | Communication system with transport link mechanism and method of operation thereof |
US9658747B2 (en) * | 2013-10-01 | 2017-05-23 | Microsoft Technology Licensing, Llc | Virtual tabs supporting web content suspension |
US9250953B2 (en) | 2013-11-12 | 2016-02-02 | Oxide Interactive Llc | Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system |
US9582326B2 (en) * | 2014-05-30 | 2017-02-28 | Apple Inc. | Quality of service classes |
US9483187B2 (en) * | 2014-09-30 | 2016-11-01 | Nimble Storage, Inc. | Quality of service implementation in a networked storage system with hierarchical schedulers |
JP6447297B2 (ja) * | 2015-03-26 | 2019-01-09 | 富士通株式会社 | 通信方法、情報処理装置、及びプログラム |
US11556396B2 (en) * | 2015-05-08 | 2023-01-17 | Seth Lytle | Structure linked native query database management system and methods |
WO2017107001A1 (en) * | 2015-12-21 | 2017-06-29 | Intel Corporation | Apparatus and method for pattern-driven page table shadowing for graphics virtualization |
-
2016
- 2016-07-27 US US15/220,511 patent/US9870266B2/en active Active
- 2016-07-28 CA CA2994291A patent/CA2994291C/en active Active
- 2016-07-28 CN CN201680056872.7A patent/CN108139926B/zh active Active
- 2016-07-28 AU AU2016298207A patent/AU2016298207B2/en not_active Ceased
- 2016-07-28 EP EP16831329.4A patent/EP3329369B1/en active Active
- 2016-07-28 WO PCT/US2016/044383 patent/WO2017019826A1/en active Application Filing
-
2017
- 2017-12-07 US US15/834,891 patent/US10528394B2/en active Active
-
2018
- 2018-12-05 HK HK18115526.1A patent/HK1256488A1/zh unknown
-
2019
- 2019-12-03 US US16/702,155 patent/US11429448B2/en active Active
-
2022
- 2022-08-29 US US17/897,501 patent/US20220413927A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050117584A1 (en) * | 2003-12-01 | 2005-06-02 | Samsung Electronics Co., Ltd. | Multi-channel job scheduling apparatus and method for communication system |
US20140325523A1 (en) * | 2004-05-11 | 2014-10-30 | International Business Machines Corporation | Scheduling computer program jobs |
US20070266390A1 (en) * | 2005-10-31 | 2007-11-15 | Mark Emmerich | Automated management of application-specific tasks from the Internet via distributed task manager agents in a local area network |
CN101166208A (zh) * | 2006-10-20 | 2008-04-23 | 北京直真节点技术开发有限公司 | 一种维护作业自动化的方法及系统 |
CN102193853A (zh) * | 2010-03-12 | 2011-09-21 | 三星电子株式会社 | 虚拟机监控器及其调度方法 |
CN101957780A (zh) * | 2010-08-17 | 2011-01-26 | 中国电子科技集团公司第二十八研究所 | 一种基于资源状态信息的网格任务调度处理器及方法 |
CN102387173A (zh) * | 2010-09-01 | 2012-03-21 | 中国移动通信集团公司 | 一种MapReduce系统及其调度任务的方法和装置 |
CN102591708A (zh) * | 2010-12-13 | 2012-07-18 | 微软公司 | 用于提供按需处理和背景处理的体系结构 |
US20130179881A1 (en) * | 2012-01-09 | 2013-07-11 | Microsoft Corporation | Decoupling paas resources, jobs, and scheduling |
US20140237476A1 (en) * | 2013-02-15 | 2014-08-21 | Apple Inc. | Centralized task scheduling |
CN104462302A (zh) * | 2014-11-28 | 2015-03-25 | 北京京东尚科信息技术有限公司 | 一种分布式数据处理协调方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968401A (zh) * | 2018-09-28 | 2020-04-07 | 北京国双科技有限公司 | 基于Quartz的任务调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CA2994291A1 (en) | 2017-02-02 |
US20220413927A1 (en) | 2022-12-29 |
US20170031723A1 (en) | 2017-02-02 |
EP3329369A1 (en) | 2018-06-06 |
CA2994291C (en) | 2018-10-16 |
CN108139926B (zh) | 2022-08-12 |
AU2016298207A1 (en) | 2018-03-08 |
EP3329369A4 (en) | 2019-02-27 |
US9870266B2 (en) | 2018-01-16 |
US20200104183A1 (en) | 2020-04-02 |
WO2017019826A1 (en) | 2017-02-02 |
AU2016298207B2 (en) | 2018-07-05 |
US11429448B2 (en) | 2022-08-30 |
US10528394B2 (en) | 2020-01-07 |
HK1256488A1 (zh) | 2019-09-27 |
EP3329369B1 (en) | 2021-09-08 |
US20180095801A1 (en) | 2018-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108139926A (zh) | 后台作业处理框架 | |
CN110402431B (zh) | 使用有向无环图进行事件驱动的调度 | |
US9489237B1 (en) | Dynamic tree determination for data processing | |
RU2250490C2 (ru) | Предоставление расширений программного обеспечения на основе использования сети | |
CN109408286A (zh) | 数据处理方法、装置、系统、计算机可读存储介质 | |
WO2003102715A2 (en) | Systems and methods for work list prediction | |
CN105453035B (zh) | 用于接收对存储在计算机系统处的软件组件的更新的方法 | |
TW201229795A (en) | Web service patterns for globally distributed service fabric | |
CN110352401A (zh) | 具有按需代码执行能力的本地装置协调器 | |
CN109564527A (zh) | 云计算节点的安全配置 | |
WO2007104044A2 (en) | Systems and methods for managing business issues | |
CN115454629A (zh) | 基于云原生技术的ai算法与微服务调度方法及其装置 | |
CN113568758B (zh) | Gpu资源池化方法、系统、设备及计算机可读存储介质 | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
EP3786797A1 (en) | Cloud resource marketplace | |
US10740085B2 (en) | Webserver interface for deployment management tool | |
CN116302390A (zh) | 一种数据调度方法及装置 | |
US10417051B2 (en) | Synchronizing shared resources in an order processing environment using a synchronization component | |
CN110321335B (zh) | 建模数据下载方法、装置、电子设备及计算机存储介质 | |
US7269610B2 (en) | System and method to observe user behavior and perform actions introspectable objects | |
Stubbs et al. | A Comprehensive Cloud Architecture for Machine Learning-enabled Research | |
Yu et al. | Such: A cloud computing management tool | |
Clarke | Trust separation on the Cray XC40 using PBS Pro | |
Suleman | Utility-based high performance digital library systems | |
Nguyen | Microservices, RESTful API and a use case |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1256488 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |