CN108090731B - 一种信息处理方法及设备 - Google Patents
一种信息处理方法及设备 Download PDFInfo
- Publication number
- CN108090731B CN108090731B CN201611038830.9A CN201611038830A CN108090731B CN 108090731 B CN108090731 B CN 108090731B CN 201611038830 A CN201611038830 A CN 201611038830A CN 108090731 B CN108090731 B CN 108090731B
- Authority
- CN
- China
- Prior art keywords
- workflow
- queue
- information
- request information
- key information
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 38
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000006399 behavior Effects 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
Images
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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- 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
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种信息处理方法及设备。所述方法包括:基于用户行为获得工作流请求信息;当所述驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中;其中,所述第一驱动类型为:定时驱动、重调驱动或参数驱动;通过第一事件处理器按顺序从所述第一等待队列中读取关键信息,基于所述关键信息生成工作流实例,将所述工作流实例写入第一下发队列中;通过第一提交器从所述第一下发队列中读取工作流实例发送至对应的执行节点;针对每一驱动类型的工作流预先配置相应的分发器、等待队列、事件处理器、下发队列以及提交器。
Description
技术领域
本发明涉及信息处理技术,具体涉及一种信息处理方法及设备。
背景技术
现有技术中,基于用户行为产生的工作流驱动请求仅分为手工驱动和定时驱动两种类型;其中,工作流是对某项工作的业务流程及其中各个步骤之间的业务规则和相互关联的抽象与概括描述。两种类型的工作流下发时共用一个队列,同时使用同一个并发控制体系。当发起工作流执行请求时,两种类型的工作流实例进入同一个等待队列等到调度,并发控制的计数体系中会同时累加两种方式目前运行的工作流实例数目,以确定当前等待队列中的工作流实例是否可以下发执行。只有在并发满足的条件下(目前通常情况下并发数为1,即一个工作流只允许一个实例运行),工作流实例才能从等待队列移出并下发执行。也就是说,当执行定时驱动类型的工作流实例时,手工驱动的工作流实例是无法被执行的。
现有技术在对应大批量、多业务的需求时会出现以下问题:1、驱动方式不够多样化,除基本调试(例如手工驱动)与周期性调度(定时驱动)外,用户还有很多其它多种的需求,而现有技术无法涵盖所有的调度需求。2、不同的驱动类型对应相同的处理逻辑。无法满足不同类型的工作流对时效性的需求。3、不同的驱动类型对应同一套并发控制体系,这使得不同类型的工作流是相互干扰的。
发明内容
为解决现有存在的技术问题,本发明实施例提供了一种信息处理方法及设备。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种信息处理方法,所述方法包括:
基于用户行为获得工作流请求信息;
当所述驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动;
通过第一事件处理器按顺序从所述第一等待队列中读取关键信息,基于所述关键信息生成工作流实例,将所述工作流实例写入第一下发队列中;
通过第一提交器从所述第一下发队列中读取工作流实例发送至对应的执行节点以执行所述工作流实例;
其中,针对每一驱动类型的工作流预先配置相应的分发器、等待队列、事件处理器、下发队列以及提交器。
上述方案中,所述通过第一分发器将所述关键信息写入第一等待队列时,所述方法还包括:控制所述第一等待队列对应的第一计数器加一;
相应的,所述通过第一事件处理器按顺序从所述第一等待队列中读取关键信息时,所述方法还包括:所述第一事件处理器控制所述第一计数器减一;
所述将所述工作流实例写入第一下发队列时,所述方法还包括:所述第一事件处理器控制所述第一下发队列对应的第二计时器加一;
相应的,所述通过第一提交器从所述第一下发队列中读取工作流实例时,所述方法还包括:所述第一提交器控制所述第一下发队列对应的第二计时器减一;
所述读取工作流实例发送至对应的执行节点时,所述方法还包括:所述第一提交器控制所述执行节点对应的第三计时器加一。
上述方案中,所述通过第一分发器将所述关键信息写入第一等待队列中之后,所述方法还包括:所述第一等待队列中的关键信息按照预设规则进行排序;其中,所述第一等待队列中的关键信息按照预设规则排序,包括:
不同用户产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户不同批次产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户同一批次产生的工作流请求信息对应的关键信息,当所述第一驱动类型为重调驱动类型时,所述关键信息按照所述工作流请求信息对应的业务日期的先后顺序排序;当所述第一驱动类型为除所述重调驱动类型以外的其他驱动类型时,所述关键信息按照工作流实例生成的先后顺序排序。
上述方案中,所述生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中,包括:
识别所述工作流请求信息中包括的工作流,获得所述工作流的标识以及参数信息,将所述工作流的标识和对应的参数信息作为关键信息,通过第一分发器将所述关键信息写入第一等待队列中。
上述方案中,当所述驱动类型为手工驱动类型时,所述方法还包括:通过第二分发器直接分发所述工作流请求信息;
通过第二提交器直接基于所述工作流请求信息生成工作流实例;将所述工作流实例发送至对应的执行节点以执行所述工作流实例。
本发明实施例还提供了一种信息处理设备,所述设备包括:对应于每一驱动类型分别设置的分发器、等待队列、事件处理器、下发队列和提交器;其中,
第一分发器,用于基于用户行为获得相匹配的驱动类型的工作流请求信息;当所述相匹配的驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,将所述关键信息写入第一等待队列中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动;
第一事件处理器,用于按顺序从所述第一等待队列中读取关键信息,基于所述关键信息生成工作流实例,将所述工作流实例写入第一下发队列中;
第一提交器,用于从所述第一下发队列中读取工作流实例发送至对应的执行节点以执行所述工作流实例。
上述方案中,所述分发器,还用于将所述关键信息写入第一等待队列时,控制所述第一等待队列对应的第一计数器加一;
所述事件处理器,还用于按顺序从所述第一等待队列中读取关键信息时,控制所述第一计数器减一;还用于将所述工作流实例写入第一下发队列时,将所述工作流实例写入第一下发队列时,
所述提交器,还用于从所述第一下发队列中读取工作流实例时,控制所述第一下发队列对应的第二计时器减一;还用于控制所述执行节点对应的第三计时器加一。
上述方案中,所述第一等待队列,用于将关键信息按照预设规则进行排序;其中,按照预设规则排序,包括:
不同用户产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户不同批次产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户同一批次产生的工作流请求信息对应的关键信息,当所述第一驱动类型为重调驱动类型时,所述关键信息按照所述工作流请求信息对应的业务日期的先后顺序排序;当所述第一驱动类型为除所述重调驱动类型以外的其他驱动类型时,所述关键信息按照实例工作流实例生成的先后顺序排序。
上述方案中,所述第一分发器,用于识别所述工作流请求信息中包括的工作流,获得所述工作流的标识以及参数信息,将所述工作流的标识和对应的参数信息作为关键信息,将所述关键信息写入第一等待队列中。
上述方案中,当所述驱动类型为手工驱动类型时,第二分发器,用于直接分发所述工作流请求信息;
第二事件处理器,用于基于所述工作流请求信息生成工作流实例;
第二提交器,用于直接将所述工作流实例发送至对应的执行节点以执行所述工作流实例。
本发明实施例提供的信息处理方法及设备,所述方法包括:基于用户行为获得工作流请求信息,识别所述工作流请求信息的驱动类型;当所述驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动;通过第一事件处理器按顺序从所述第一等待队列中读取关键信息,基于所述关键信息生成工作流实例,将所述工作流实例写入第一下发队列中;通过第一提交器从所述第一下发队列中读取工作流实例发送至对应的执行节点以执行所述工作流实例;其中,针对每一驱动类型的工作流预先配置相应的分发器、等待队列、事件处理器、下发队列以及提交器。采用本发明实施例的技术方案,一方面将驱动类型细化为手工驱动类型、定时驱动类型、重调驱动类型和参数驱动类型,实现了驱动方式的多样化,能够满足多种任务需求,扩大了使用场景;另一方面,每种驱动类型对应不同的处理逻辑,并且每种驱动类型通过不同的并发控制体系控制,实现了不同类型驱动方式的工作流实例的并发执行,使调度方式更加灵活多样,还可以与其他***进行无缝链接,提升了***的易用性。
附图说明
图1为本发明实施例的信息处理方法的流程示意图;
图2为本发明实施例的信息处理方法的工作流在各处理节点的流转示意图;
图3为本发明实施例的信息处理设备的一种组成结构示意图;
图4为本发明实施例的信息处理设备的另一种组成结构示意图;
图5为本发明实施例的信息处理设备作为一个硬件实体的示意图。
具体实施方式
发明人发现,现有的工作流请求的处理方式对应大批量多任务的需求时会出现以下问题:
1、驱动方式不够多样化:除基本调试(手工驱动)与周期性调度(定时驱动)外,用户还有很多其它多种的需求:定时调度的工作流需要一次性计算已经存在的历史数据,对于已经执行过的有问题的任务,需要重新执行;另外工作流调度***作为介于用户与底层平台的中间***,需要具备与其它***无缝链接的能力的,这样才能进一步扩大的***使用场景;
2、不同的驱动方式却对应着相同的处理逻辑:不同的驱动方式,用户其实有着不同的需求,比如调试类的需要立即响应并在前台展示,而定时类则无需即时响应,只需要提供渠道用户可查看即可。两种不同的处理方式对下发执行的时效性要求不同,可以给予不同的处理逻辑,但传统的实现却不具备这个能力;
3、不同的驱动方式共用同一套并发控制体系,即并发控制同时涵盖了所有的驱动方式。这就具体表现为不同的驱动方式是相互干扰的,即用户在调试任务时,定时实例就无法启动,反过来也一样,定时实例执行时用户就无法调试任务。如果要打造一个易用性强的调度***,这一点是很致命的。
基于上述不足提出本发明以下各实施例。
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种信息处理方法,应用于信息处理设备中。图1为本发明实施例的信息处理方法的流程示意图;图2为本发明实施例的信息处理方法的工作流在各处理节点的流转示意图;结合图1和图2所示,所述方法包括:
步骤101:基于用户行为获得工作流请求信息。
步骤102:当所述驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动。
步骤103:通过第一事件处理器按顺序从所述第一等待队列中读取关键信息,基于所述关键信息生成工作流实例,将所述工作流实例写入第一下发队列中。
步骤104:通过第一提交器从所述第一下发队列中读取工作流实例发送至对应的执行节点以执行所述工作流实例。其中,针对每一驱动类型的工作流预先配置相应的分发器、等待队列、事件处理器、下发队列以及提交器。
本实施例的信息处理方法基于用户行为将工作流请求信息的驱动类型具体分为四种类型,分别为:手工驱动、定时驱动、重调驱动、参数驱动。其中,所述手工驱动类型对应于在前台调试的工作流,可应用在调试任务的应用场景。所述定时驱动类型对应于执行***需要定时执行的工作流,可应用在定时任务的应用场景。所述重调驱动对应于用户计算历史数据或重新执行定时任务的工作流。所述参数驱动对应于用户自定义参数且需要后台应用程序编程接口(API,Application Programming Interface)执行的工作流,可应用在其他***通过本发明实施例的信息处理设备的API进行耦合的应用场景。具体的,用户在前台分别设置的两个入口分别进行手工驱动、重调驱动两种操作,也即可分别通过所述两个入口获得对应于手工驱动类型和定时驱动类型的工作流请求信息;用户在配置工作流为定时工作流后,***定时进行定时驱动操作;用户通过后台的API可以自主进行参数驱动。基于此,本实施例中基于用户行为获得工作流请求信息,识别所述工作流请求信息的驱动类型。
本实施例中,当所述工作流请求信息的驱动类型为手工驱动类型时,通过分发器直接分发所述工作流请求信息;通过提交器直接基于所述工作流请求信息生成工作流实例;将所述工作流实例发送至对应的执行节点以执行所述工作流实例。上述分发器和提交器可记为第二分发器和第二提交器。可以理解为,手工驱动类型的工作流请求信息无需进入等待队列和下发队列而直接通过提交器生成工作流实例并下发。
另一方面,所述信息处理设备中预先针对除手工驱动类型以外的上述三种驱动类型配置三种分发器、等待队列、事件处理器、下发队列以及提交器,针对每一种驱动类型分发器、等待队列、事件处理器、下发队列以及提交器配置与相应驱动类型相匹配的处理逻辑,用于处理对应驱动类型的工作流请求信息。也就是说,针对手工驱动、定时驱动、重调驱动、参数驱动分别设置有四种分发器和四种提交器;而针对定时驱动、重调驱动、参数驱动还分别设置有三种等待队列、事件处理器、下发队列。
本实施例中,针对定时驱动、重调驱动和参数驱动等三种驱动类型,信息处理设备识别工作流请求信息的驱动类型为上述三种驱动类型中的任一驱动类型时,记为第一驱动类型;由于每种类型的驱动方式对应一个分发器(可记为Dispatcher或JobFlowDispatcher),用于接受相应类型驱动方式的工作流请求信息,则第一分发器获得第一驱动类型的工作流请求信息时,获得所述工作流请求信息的关键信息,将所述关键信息写入第一等待队列中。作为一种实施方式,所述生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中,包括:识别所述工作流请求信息中包括的工作流,获得所述工作流的标识以及参数信息,将所述工作流的标识和对应的参数信息作为关键信息,通过第一分发器将所述关键信息写入第一等待队列中。本实施例中,所述关键信息具体可以为工作流标识(FlowID)+参数信息;其中,所述参数信息可根据工作流请求的驱动类型预先配置;例如当所述驱动类型为定时驱动时,则所述参数信息可以为定时时间等。
本实施例中,三种等待队列(WaitingQueue)位于缓存(所述缓存例如Redis)中;为减小等待队列的占用空间,等待队列中并不存放完整的工作流内容,而仅为工作流请求信息对应的关键信息;因此,所述等待队列的容量大小可不设置上线,即接受用户的任何工作流请求。而真正的工作流内容可存储在数据库中。其中,所述等待队列中的信息均有固定的排序。当一等待队列为上述三种驱动类型中的任一驱动类型对应的等待队列时,所述等待队列记为第一等待队列。所述通过第一分发器将所述关键信息写入第一等待队列中之后,所述方法还包括:所述第一等待队列中的关键信息按照预设规则进行排序;其中,所述第一等待队列中的关键信息按照预设规则排序,包括:不同用户产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;同一用户不同批次产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;同一用户同一批次产生的工作流请求信息对应的关键信息,当所述第一驱动类型为重调驱动类型时,所述关键信息按照所述工作流请求信息对应的业务日期的先后顺序排序;当所述第一驱动类型为除所述重调驱动类型以外的其他驱动类型时,所述关键信息按照工作流实例生成的先后顺序排序。
本实施例中,通过第一事件处理器(EventHandler)从第一等待队列(WaitingQueue)中读取关键信息,基于读取的关键信息生成工作流实例,具体可基于所述关键信息(例如工作流标识(FlowID)+参数信息)从数据库中读取工作流,基于工作流生成工作流实例。具体的,事件处理器(EventHandler)首先确定需要下发的工作流的数量;进一步需要进行并发判断和资源判断,保证进入下发队列(ActiveQueue)的工作流实例都是可以直接执行的,因此需要确认任意工作流;并发条件满足的情况下,判定资源是否满足。由于下发队列(ActiveQueue)通常设置有上线,则事件处理器(EventHandler)判定资源是否满足不仅需要判定下发队列(ActiveQueue)的资源是否满足待下发的工作流实例,还需要判定工作流实例的具体执行机器是否满足资源需求;在实际应用中,事件处理器(EventHandler)可在工作流实例下发之前与具体的执行机器进行通信,获得所述执行机器的资源情况,从而进行资源判定。其中,三种驱动类型的事件处理器(EventHandler)可按不同的驱动类型采用不同的处理逻辑;当然,三种驱动类型的事件处理器(EventHandler)中的至少之二也可采用相同的处理逻辑。
本实施例中,三种下发队列(ActiveQueue)位于缓存(所述缓存例如Redis)中;由于下发队列(ActiveQueue)中存储完整的工作流实例,占用空间较大,则下发队列(ActiveQueue)通常设置有容量上限。下发队列(ActiveQueue)中的所有任务(即工作流实例)在满足并发资源等条件时都是可以直接下发的。其中,所述下发队列(ActiveQueue)的工作流实例的排序可按照进入所述下发队列(ActiveQueue)的先后顺序。由于不同驱动类型的工作流实例位于不同的下发队列(ActiveQueue)中,则驱动方式之间并不存在竞争关系。
本实施例中,除手工驱动类型以外,通过三种提交器(Submitter)分别从对应的下发队列(ActiveQueue)读取工作流实例下发至对应的执行节点。每一种提交器(Submitter)对应连接工作流实例下发器,通过所述工作流实例下发器将工作流实例下发至对应执行节点,具体可通过超文本传输协议(HTTP,HyperText Transfer Protocol)请求或套接字(SOCKET)直接将工作流实例下发至执行节点执行即可。其中,提交器(Submitter)从下发队列(ActiveQueue)中从队首开始依次读取工作流实例进行下发,每读取一个工作流实例,则告知下发队列(ActiveQueue)有空余。本实施例中,四种驱动类型的提交器(Submitter)可按不同的驱动类型采用不同的处理逻辑;当然,四种驱动类型的提交器(Submitter)中的至少之二也可采用相同的处理逻辑。
本实施例中,所述通过第一分发器将所述关键信息写入第一等待队列时,所述方法还包括:控制所述第一等待队列对应的第一计数器加一;相应的,所述通过第一事件处理器按顺序从所述第一等待队列中读取关键信息时,所述方法还包括:所述第一事件处理器控制所述第一计数器减一;
所述将所述工作流实例写入第一下发队列时,所述方法还包括:所述第一事件处理器控制所述第一下发队列对应的第二计时器加一;相应的,所述通过第一提交器从所述第一下发队列中读取工作流实例时,所述方法还包括:所述第一提交器控制所述第一下发队列对应的第二计时器减一;
所述读取工作流实例发送至对应的执行节点时,所述方法还包括:所述第一提交器控制所述执行节点对应的第三计时器加一。
具体的,结合图2所示,本实施例中的信息处理设备还设置有另一处理逻辑,即实例数(Count)处理逻辑,包括等待实例数(WaitingCountMap)、下发实例数(ActiveCountMap)、运行实例数(RunningCountMap)等等;其中,等待实例数(WaitingCountMap)的计数可通过第一计数器实现,所述第一计数器用于记录等待队列中的等待实例数量;所述下发实例数(ActiveCountMap)的计数可通过第二计数器实现,所述第二计数器用于记录下发队列中的实例数量;所述运行实例数(RunningCountMap)的计数可通过第三计数器实现,所述第三计数器用于记录运行的实例数量。一方面便于事件处理器(EventHandler)进行并发控制,另一方面也便于前台对于工作流统计信息的展现。
具体的,当分发器将一个关键信息写入等待队列时,可控制所述第一计数器加一;当事件处理器(EventHandler)从等待队列中读取一个关键信息时,控制所述第一计数器减一;事件处理器(EventHandler)将一个工作流实施例写入下发队列时,控制第二计时器加一;提交器从下发队列读取一个工作流实例时,控制所述第二计时器减一;递交器将一个工作流实例发送至对应的执行节点时,控制第三计时器加一。其中,针对每一种驱动类型的执行逻辑,均配置一组第一计数器、第二计数器和第三计数器;当然,也可以针对所有驱动类型的执行逻辑,设置一组第一计数器、第二计数器和第三计数器,所述第一计数器用于记录所有缓存队列的数量,所述第二计数器用于记录所有下发队列的实例数量,相应的,所述第三计数器用于所有正在执行的实例数量。
采用本发明实施例的技术方案,一方面将驱动类型细化为手工驱动类型、定时驱动类型、重调驱动类型和参数驱动类型,实现了驱动方式的多样化,能够满足多种任务需求,扩大了使用场景;另一方面,每种驱动类型对应不同的处理逻辑,并且每种驱动类型通过不同的并发控制体系控制,实现了不同类型驱动方式的工作流实例的并发执行,使调度方式更加灵活多样,还可以与其他***进行无缝链接,提升了***的易用性。
本发明实施例还提供了一种信息处理设备。图3为本发明实施例的信息处理设备的一种组成结构示意图;如图3所示,所述设备包括:对应于每一驱动类型分别设置的分发器31、等待队列32、事件处理器33、下发队列34和提交器35;其中,
第一分发器31,用于基于用户行为获得相匹配的驱动类型的工作流请求信息;当所述相匹配的驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,将所述关键信息写入第一等待队列32中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动;
第一事件处理器33,用于按顺序从所述第一等待队列32中读取关键信息,基于所述关键信息生成工作流实例,将所述工作流实例写入第一下发队列34中;
第一提交器35,用于从所述第一下发队列34中读取工作流实例发送至对应的执行节点以执行所述工作流实例。其中,所述第一分发器31、第一等待队列32、第一事件处理器33、第一下发队列34和第一提交器35为所述第一驱动类型向对应的分发器31、等待队列32、事件处理器33、下发队列34和提交器35。
另一方面,当所述驱动类型为手工驱动类型时,则第二分发器31,用于直接分发所述工作流请求信息;第二事件处理器33,用于基于所述工作流请求信息生成工作流实例;第二提交器35,用于直接将所述工作流实例发送至对应的执行节点以执行所述工作流实例。其中,所述第二分发器31、第二事件处理器33和第二提交器35为所述手工驱动类型对应的分发器31、事件处理器33和提交器35。
结合图3所示,本实施例基于用户行为将工作流请求信息的驱动类型具体分为四种类型,分别为:手工驱动、定时驱动、重调驱动、参数驱动。其中,所述手工驱动类型对应于在前台调试的工作流,可应用在调试任务的应用场景。所述定时驱动类型对应于执行***需要定时执行的工作流,可应用在定时任务的应用场景。所述重调驱动对应于用户计算历史数据或重新执行定时任务的工作流。所述参数驱动对应于用户自定义参数且需要后台API执行的工作流,可应用在其他***通过本发明实施例的信息处理设备的API进行耦合的应用场景。具体的,用户在前台分别设置的两个入口分别进行手工驱动、重调驱动两种操作,也即可分别通过所述两个入口获得对应于手工驱动类型和定时驱动类型的工作流请求信息;用户在配置工作流为定时工作流后,***定时进行定时驱动操作;用户通过后台的API可以自主进行参数驱动。基于此,本实施例中分发器31(所述分发器31可以为第一分发器31或第二分发器31)基于用户行为获得工作流请求信息,识别所述工作流请求信息的驱动类型。
本实施例中,一方面,当所述工作流请求信息的驱动类型为手工驱动类型时,通过分发器31(所述分发器31为第二分发器31)直接分发所述工作流请求信息;通过提交器35直接基于所述工作流请求信息生成工作流实例;将所述工作流实例发送至对应的执行节点以执行所述工作流实例。上述分发器31和提交器35可记为第二分发器31和第二提交器35。可以理解为,手工驱动类型的工作流请求信息无需进入等待队列32和下发队列34而直接通过提交器35生成工作流实例并下发。
另一方面,所述信息处理设备中预先针对除手工驱动类型以外的上述三种驱动类型配置三种分发器31、等待队列32、事件处理器33、下发队列34以及提交器35,针对每一种驱动类型分发器31、等待队列32、事件处理器33、下发队列34以及提交器35配置与相应驱动类型相匹配的处理逻辑,用于处理对应驱动类型的工作流请求信息。也就是说,针对手工驱动、定时驱动、重调驱动、参数驱动分别设置有四种分发器31和四种提交器35;而针对定时驱动、重调驱动、参数驱动还分别设置有三种等待队列32、事件处理器33、下发队列34。
本实施例中,针对定时驱动、重调驱动和参数驱动等三种驱动类型,识别工作流请求信息的驱动类型为上述三种驱动类型中的任一驱动类型时,记为第一驱动类型;由于每种类型的驱动方式对应一个分发器31(可记为Dispatcher或JobFlowDispatcher),用于接受相应类型驱动方式的工作流请求信息,则第一分发器31获得第一驱动类型的工作流请求信息时,获得所述工作流请求信息的关键信息,将所述关键信息写入第一等待队列32中。作为一种实施方式,所述第一分发器31,用于识别所述工作流请求信息中包括的工作流,获得所述工作流的标识以及参数信息,将所述工作流的标识和对应的参数信息作为关键信息,将所述关键信息写入第一等待队列32中。本实施例中,所述关键信息具体可以为工作流标识(FlowID)+参数信息;其中,所述参数信息可根据工作流请求的驱动类型预先配置;例如当所述驱动类型为定时驱动时,则所述参数信息可以为定时时间等。
本实施例中,三种等待队列32(WaitingQueue)位于缓存(所述缓存例如Redis)中;为减小等待队列32的占用空间,等待队列32中并不存放完整的工作流内容,而仅为工作流请求信息对应的关键信息;因此,所述等待队列32的容量大小可不设置上线,即接受用户的任何工作流请求。而真正的工作流内容可存储在数据库中。其中,所述等待队列32中的信息均有固定的排序。当一等待队列32为上述三种驱动类型中的任一驱动类型对应的等待队列32时,所述等待队列32记为第一等待队列32。则所述第一等待队列32中的关键信息的排序,所述第一等待队列32,用于将关键信息按照预设规则进行排序;其中,按照预设规则排序,包括:不同用户产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;同一用户不同批次产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;同一用户同一批次产生的工作流请求信息对应的关键信息,当所述第一驱动类型为重调驱动类型时,所述关键信息按照所述工作流请求信息对应的业务日期的先后顺序排序;当所述第一驱动类型为除所述重调驱动类型以外的其他驱动类型时,所述关键信息按照工作流实例生成的先后顺序排序。
本实施例中,所述第一事件处理器33(EventHandler)从第一等待队列32(WaitingQueue)中读取关键信息,基于读取的关键信息生成工作流实例,具体可基于所述关键信息(例如工作流标识(FlowID)+参数信息)从数据库中读取工作流,基于工作流生成工作流实例。具体的,所述事件处理器33(EventHandler)首先确定需要下发的工作流的数量;进一步需要进行并发判断和资源判断,保证进入下发队列34(ActiveQueue)的工作流实例都是可以直接执行的,因此需要确认任意工作流;并发条件满足的情况下,判定资源是否满足。由于下发队列34(ActiveQueue)通常设置有上线,则事件处理器33(EventHandler)判定资源是否满足不仅需要判定下发队列34(ActiveQueue)的资源是否满足待下发的工作流实例,还需要判定工作流实例的具体执行机器是否满足资源需求;在实际应用中,所述事件处理器33(EventHandler)可在工作流实例下发之前与具体的执行机器进行通信,获得所述执行机器的资源情况,从而进行资源判定。其中,三种驱动类型的事件处理器33(EventHandler)可按不同的驱动类型采用不同的处理逻辑;当然,三种驱动类型的事件处理器33(EventHandler)中的至少之二也可采用相同的处理逻辑。
本实施例中,三种下发队列34(ActiveQueue)位于缓存(所述缓存例如Redis)中;由于下发队列34(ActiveQueue)中存储完整的工作流实例,占用空间较大,则下发队列34(ActiveQueue)通常设置有容量上限。下发队列34(ActiveQueue)中的所有任务(即工作流实例)在满足并发资源等条件时都是可以直接下发的。其中,所述下发队列34(ActiveQueue)的工作流实例的排序可按照进入所述下发队列34(ActiveQueue)的先后顺序。由于不同驱动类型的工作流实例位于不同的下发队列34(ActiveQueue)中,则驱动方式之间并不存在竞争关系。
本实施例中,除手工驱动类型以外,通过三种提交器35(Submitter)分别从对应的下发队列34(ActiveQueue)读取工作流实例下发至对应的执行节点。每一种提交器35(Submitter)对应连接工作流实例下发器,通过所述工作流实例下发器将工作流实例下发至对应执行节点,具体可通过超文本传输协议(HTTP,HyperText Transfer Protocol)请求或套接字(SOCKET)直接将工作流实例下发至执行节点执行即可。其中,提交器35(Submitter)从下发队列34(ActiveQueue)中从队首开始依次读取工作流实例进行下发,每读取一个工作流实例,则告知下发队列34(ActiveQueue)有空余。本实施例中,四种驱动类型的提交器35(Submitter)可按不同的驱动类型采用不同的处理逻辑;当然,四种驱动类型的提交器35(Submitter)中的至少之二也可采用相同的处理逻辑。
本实施例中,所述分发器31,还用于将所述关键信息写入第一等待队列32时,控制所述第一等待队列32对应的第一计数器加一;
所述事件处理器33,还用于按顺序从所述第一等待队列32中读取关键信息时,控制所述第一计数器减一;还用于将所述工作流实例写入第一下发队列34时,将所述工作流实例写入第一下发队列34时,
所述提交器35,还用于从所述第一下发队列34中读取工作流实例时,控制所述第一下发队列34对应的第二计时器减一;还用于控制所述执行节点对应的第三计时器加一。
具体的,结合图2所示,本实施例中的信息处理设备还设置有另一处理逻辑,即实例数(Count)处理逻辑,包括等待实例数(WaitingCountMap)、下发实例数(ActiveCountMap)、运行实例数(RunningCountMap)等等;其中,等待实例数(WaitingCountMap)的计数可通过第一计数器实现,所述第一计数器用于记录等待队列32中的等待实例数量;所述下发实例数(ActiveCountMap)的计数可通过第二计数器实现,所述第二计数器用于记录下发队列34中的实例数量;所述运行实例数(RunningCountMap)的计数可通过第三计数器实现,所述第三计数器用于记录运行的实例数量。一方面便于事件处理器33(EventHandler)进行并发控制,另一方面也便于前台对于工作流统计信息的展现。
本发明实施例中,所述信息处理设备在实际应用中,可通过机器学习平台对应的终端(例如计算机)或服务器实现。所述信息处理设备中的分发器31、事件处理器33和提交器35,在实际应用中均可由所述设备中的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,MicrocontrollerUnit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现;所述信息处理设备中的等待队列32和分发队列,在实际应用中均可由所述设备中的存储器实现。
图4为本发明实施例的信息处理设备的另一种组成结构示意图;如图4所示,对应于手工驱动类型设置有第二分发器311和第二提交器351;所述第二分发器获得工作流请求信息后直接下发至所述第二提交器351,所述第二提交器351生成工作流实例后下发执行。对应于定时驱动类型设置有第一分发器312、第一等待队列322、第一事件处理器332、第一下发队列342和第一提交器352;对应于重调驱动类型设置有第三分发器313、第三等待队列323、第三事件处理器333、第三下发队列343和第三提交器353;对应于参数驱动类型设置有第四分发器314、第四等待队列324、第***处理器334、第四下发队列344和第四提交器354;上述对应于定时驱动类型、重调类型和参数类型的个处理节点的执行逻辑可参照上述描述,这里不再赘述。
采用本发明实施例的技术方案,一方面将驱动类型细化为手工驱动类型、定时驱动类型、重调驱动类型和参数驱动类型,实现了驱动方式的多样化,能够满足多种任务需求,扩大了使用场景;另一方面,每种驱动类型对应不同的处理逻辑,并且每种驱动类型通过不同的并发控制体系控制,实现了不同类型驱动方式的工作流实例的并发执行,使调度方式更加灵活多样,还可以与其他***进行无缝链接,提升了***的易用性。
本实施例中,信息处理设备作为硬件实体的一个示例如图5所示。所述设备包括处理器61、存储介质62以及至少一个外部通信接口63;所述处理器61、存储介质62以及外部通信接口63均通过总线64连接。
这里需要指出的是:以上涉及服务器项的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述。对于本发明服务器实施例中未披露的技术细节,请参照本发明方法实施例的描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种信息处理方法,其特征在于,所述方法包括:
基于用户行为获得工作流请求信息;
当所述工作流请求信息的驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中,并将所述工作流请求信息对应的工作流内容存储到数据库中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动,其中,所述定时驱动对应于执行***需要定时执行的工作流,所述重调驱动对应于计算历史数据或重新执行定时任务的工作流,所述参数驱动对应于自定义参数且需要后台应用程序编程接口执行的工作流;
通过第一事件处理器按顺序从所述第一等待队列中读取关键信息,基于所述关键信息从所述数据库中读取所述工作流内容,并基于所述工作流内容生成工作流实例,将所述工作流实例写入第一下发队列中;
通过第一提交器从所述第一下发队列中读取工作流实例发送至对应的执行节点以执行所述工作流实例;
其中,针对每一驱动类型的工作流预先配置相应的分发器、等待队列、事件处理器、下发队列以及提交器,并通过所述分发器、所述等待队列、所述事件处理器、所述下发队列以及所述提交器处理所述每一驱动类型的工作流请求信息。
2.根据权利要求1所述的方法,其特征在于,所述通过第一分发器将所述关键信息写入第一等待队列时,所述方法还包括:控制所述第一等待队列对应的第一计数器加一;
相应的,所述通过第一事件处理器按顺序从所述第一等待队列中读取关键信息时,所述方法还包括:所述第一事件处理器控制所述第一计数器减一;
所述将所述工作流实例写入第一下发队列时,所述方法还包括:所述第一事件处理器控制所述第一下发队列对应的第二计时器加一;
相应的,所述通过第一提交器从所述第一下发队列中读取工作流实例时,所述方法还包括:所述第一提交器控制所述第一下发队列对应的第二计时器减一;
所述读取工作流实例发送至对应的执行节点时,所述方法还包括:所述第一提交器控制所述执行节点对应的第三计时器加一。
3.根据权利要求1所述的方法,其特征在于,所述通过第一分发器将所述关键信息写入第一等待队列中之后,所述方法还包括:所述第一等待队列中的关键信息按照预设规则进行排序;其中,所述第一等待队列中的关键信息按照预设规则排序,包括:
不同用户产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户不同批次产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户同一批次产生的工作流请求信息对应的关键信息,当所述第一驱动类型为重调驱动类型时,所述关键信息按照所述工作流请求信息对应的业务日期的先后顺序排序;当所述第一驱动类型为除所述重调驱动类型以外的其他驱动类型时,所述关键信息按照工作流实例生成的先后顺序排序。
4.根据权利要求1所述的方法,其特征在于,所述生成所述工作流请求信息对应的关键信息,通过第一分发器将所述关键信息写入第一等待队列中,包括:
识别所述工作流请求信息中包括的工作流,获得所述工作流的标识以及参数信息,将所述工作流的标识和对应的参数信息作为关键信息,通过第一分发器将所述关键信息写入第一等待队列中。
5.根据权利要求1所述的方法,其特征在于,所述驱动类型还包括手工驱动类型,所述方法还包括:通过第二分发器直接分发所述工作流请求信息;
通过第二提交器直接基于所述工作流请求信息生成工作流实例;将所述工作流实例发送至对应的执行节点以执行所述工作流实例,其中,所述手工驱动对应于在前台调试的工作流。
6.一种信息处理设备,其特征在于,所述设备包括:对应于每一驱动类型分别设置的分发器、等待队列、事件处理器、下发队列和提交器,所述分发器、所述等待队列、所述事件处理器、所述下发队列以及所述提交器用于处理所述每一驱动类型的工作流请求信息;其中,
第一分发器,用于基于用户行为获得相匹配的驱动类型的工作流请求信息;当所述相匹配的驱动类型为第一驱动类型时,生成所述工作流请求信息对应的关键信息,将所述关键信息写入第一等待队列中,并将所述工作流请求信息对应的工作流内容存储到数据库中;其中,所述第一驱动类型为以下驱动类型的其中之一:定时驱动、重调驱动、参数驱动,其中,所述定时驱动对应于执行***需要定时执行的工作流,所述重调驱动对应于计算历史数据或重新执行定时任务的工作流,所述参数驱动对应于自定义参数且需要后台应用程序编程接口执行的工作流;
第一事件处理器,用于按顺序从所述第一等待队列中读取关键信息,基于所述关键信息从所述数据库中读取所述工作流内容,并基于所述工作流内容生成工作流实例,将所述工作流实例写入第一下发队列中;
第一提交器,用于从所述第一下发队列中读取工作流实例发送至对应的执行节点以执行所述工作流实例。
7.根据权利要求6所述的设备,其特征在于,所述分发器,还用于将所述关键信息写入第一等待队列时,控制所述第一等待队列对应的第一计数器加一;
所述事件处理器,还用于按顺序从所述第一等待队列中读取关键信息时,控制所述第一计数器减一;还用于将所述工作流实例写入第一下发队列时,将所述工作流实例写入第一下发队列时,
所述提交器,还用于从所述第一下发队列中读取工作流实例时,控制所述第一下发队列对应的第二计时器减一;还用于控制所述执行节点对应的第三计时器加一。
8.根据权利要求6所述的设备,其特征在于,所述第一等待队列,用于将关键信息按照预设规则进行排序;其中,按照预设规则排序,包括:
不同用户产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户不同批次产生的工作流请求信息对应的关键信息按照所述工作流请求信息的生成时间的先后顺序排序;
同一用户同一批次产生的工作流请求信息对应的关键信息,当所述第一驱动类型为重调驱动类型时,所述关键信息按照所述工作流请求信息对应的业务日期的先后顺序排序;当所述第一驱动类型为除所述重调驱动类型以外的其他驱动类型时,所述关键信息按照实例工作流实例生成的先后顺序排序。
9.根据权利要求6所述的设备,其特征在于,所述第一分发器,用于识别所述工作流请求信息中包括的工作流,获得所述工作流的标识以及参数信息,将所述工作流的标识和对应的参数信息作为关键信息,将所述关键信息写入第一等待队列中。
10.根据权利要求6所述的设备,其特征在于,所述驱动类型还包括手工驱动类型,所述设备还包括:第二分发器,用于直接分发所述工作流请求信息;
第二事件处理器,用于基于所述工作流请求信息生成工作流实例;
第二提交器,用于直接将所述工作流实例发送至对应的执行节点以执行所述工作流实例,其中,所述手工驱动对应于在前台调试的工作流。
11.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至5任一项所述的信息处理方法。
12.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至5任一项所述的信息处理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611038830.9A CN108090731B (zh) | 2016-11-23 | 2016-11-23 | 一种信息处理方法及设备 |
PCT/CN2017/111919 WO2018095298A1 (zh) | 2016-11-23 | 2017-11-20 | 一种信息处理方法、设备和计算机存储介质 |
US16/287,903 US10789109B2 (en) | 2016-11-23 | 2019-02-27 | Information processing method and device and computer storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611038830.9A CN108090731B (zh) | 2016-11-23 | 2016-11-23 | 一种信息处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108090731A CN108090731A (zh) | 2018-05-29 |
CN108090731B true CN108090731B (zh) | 2021-10-15 |
Family
ID=62170899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611038830.9A Active CN108090731B (zh) | 2016-11-23 | 2016-11-23 | 一种信息处理方法及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10789109B2 (zh) |
CN (1) | CN108090731B (zh) |
WO (1) | WO2018095298A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829521B (zh) * | 2018-06-13 | 2022-05-13 | 平安科技(深圳)有限公司 | 任务处理方法、装置、计算机设备及存储介质 |
CN110837409A (zh) * | 2018-08-16 | 2020-02-25 | 北京京东尚科信息技术有限公司 | 一种定时执行任务的方法和*** |
US10891159B2 (en) | 2018-09-24 | 2021-01-12 | Salesforce.Com, Inc. | Activation policies for workflows |
CN111338917B (zh) * | 2018-12-19 | 2023-03-28 | 贵州白山云科技股份有限公司 | 一种确定服务器服务能力的动态控制方法及装置 |
US11809382B2 (en) | 2019-04-01 | 2023-11-07 | Nutanix, Inc. | System and method for supporting versioned objects |
US20200310859A1 (en) * | 2019-04-01 | 2020-10-01 | Nutanix, Inc. | System and method for an object layer |
US11704334B2 (en) | 2019-12-06 | 2023-07-18 | Nutanix, Inc. | System and method for hyperconvergence at the datacenter |
CN111130007B (zh) * | 2019-12-11 | 2021-08-24 | 深圳供电局有限公司 | 顺序式输电线路现场作业方法与*** |
US11609777B2 (en) | 2020-02-19 | 2023-03-21 | Nutanix, Inc. | System and method for multi-cluster storage |
US20210334284A1 (en) | 2020-04-28 | 2021-10-28 | Nutanix, Inc. | System and method of querying objects on demand |
US11487787B2 (en) | 2020-05-29 | 2022-11-01 | Nutanix, Inc. | System and method for near-synchronous replication for object store |
CN111831461A (zh) * | 2020-07-01 | 2020-10-27 | 中国建设银行股份有限公司 | 一种处理业务流程的方法和装置 |
US12001872B2 (en) | 2020-10-14 | 2024-06-04 | Nutanix, Inc. | Object tiering from local store to cloud store |
US11900164B2 (en) | 2020-11-24 | 2024-02-13 | Nutanix, Inc. | Intelligent query planning for metric gateway |
US11822370B2 (en) | 2020-11-26 | 2023-11-21 | Nutanix, Inc. | Concurrent multiprotocol access to an object storage system |
CN112669636B (zh) * | 2020-12-18 | 2023-01-24 | 谢华彬 | 一种红绿灯路口的机动车倒计时电子信息指示牌 |
US11899572B2 (en) | 2021-09-09 | 2024-02-13 | Nutanix, Inc. | Systems and methods for transparent swap-space virtualization |
US12032857B2 (en) | 2021-11-22 | 2024-07-09 | Nutanix, Inc. | System and method for shallow copy |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627764A (en) * | 1991-10-04 | 1997-05-06 | Banyan Systems, Inc. | Automatic electronic messaging system with feedback and work flow administration |
CN1959717A (zh) * | 2006-10-09 | 2007-05-09 | 北京道达天际软件技术有限公司 | 订单驱动的海量遥感数据集群化预处理***及其方法 |
CN104091222A (zh) * | 2014-05-08 | 2014-10-08 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
US9021487B2 (en) * | 2005-07-11 | 2015-04-28 | International Business Machines Corporation | Apparatus and method for serializing process instance access to information stored redundantly in at least two datastores |
CN105389209A (zh) * | 2015-12-25 | 2016-03-09 | 中国建设银行股份有限公司 | 一种异步批量任务处理方法及*** |
CN105550280A (zh) * | 2015-12-10 | 2016-05-04 | 天津海量信息技术有限公司 | 登录类型网站的数据采集*** |
CN105573840A (zh) * | 2015-12-08 | 2016-05-11 | 东软集团股份有限公司 | 工作流运行期的事件处理方法和装置 |
CN106126354A (zh) * | 2016-06-21 | 2016-11-16 | 中国建设银行股份有限公司 | 一种异步批量处理方法及*** |
CN107885600A (zh) * | 2017-10-19 | 2018-04-06 | 用友网络科技股份有限公司 | 批量定时任务的调度方法、装置和计算机设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449646B1 (en) * | 1998-10-13 | 2002-09-10 | Aspect Communications Corporation | Method and apparatus for allocating mixed transaction type messages to resources via an integrated queuing mechanism |
CN1858783A (zh) * | 2006-06-05 | 2006-11-08 | 上海宏迅软件有限公司 | 工作流管理***中数据驱动的方法 |
US9342383B2 (en) * | 2007-12-28 | 2016-05-17 | Sap Se | Streaming operations for workflow process models using multiple views on a same buffer |
US20100077403A1 (en) * | 2008-09-23 | 2010-03-25 | Chaowei Yang | Middleware for Fine-Grained Near Real-Time Applications |
US20120278513A1 (en) * | 2011-02-01 | 2012-11-01 | Michel Prevost | Priority scheduling for multi-channel context aware communication technology |
US8620709B2 (en) * | 2011-02-11 | 2013-12-31 | Avaya, Inc | Mobile activity manager |
CN102761617B (zh) * | 2012-07-02 | 2015-06-24 | 京北方信息技术股份有限公司 | 一种工作流队列服务器、工作流调度***及其方法 |
US8566414B2 (en) * | 2012-10-12 | 2013-10-22 | Freedomone Mobile, Inc. | Systems and methods for subscription management in a multi-channel context aware communication environment |
US9483307B2 (en) * | 2013-09-04 | 2016-11-01 | Swiftpage Act! Llc | Asynchronous, interactive task workflows |
US9344573B2 (en) * | 2014-03-14 | 2016-05-17 | Twilio, Inc. | System and method for a work distribution service |
US10038731B2 (en) * | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US9948585B2 (en) * | 2015-05-01 | 2018-04-17 | Cirius Messaging Inc. | Split-architecture message processing system |
-
2016
- 2016-11-23 CN CN201611038830.9A patent/CN108090731B/zh active Active
-
2017
- 2017-11-20 WO PCT/CN2017/111919 patent/WO2018095298A1/zh active Application Filing
-
2019
- 2019-02-27 US US16/287,903 patent/US10789109B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627764A (en) * | 1991-10-04 | 1997-05-06 | Banyan Systems, Inc. | Automatic electronic messaging system with feedback and work flow administration |
US9021487B2 (en) * | 2005-07-11 | 2015-04-28 | International Business Machines Corporation | Apparatus and method for serializing process instance access to information stored redundantly in at least two datastores |
CN1959717A (zh) * | 2006-10-09 | 2007-05-09 | 北京道达天际软件技术有限公司 | 订单驱动的海量遥感数据集群化预处理***及其方法 |
CN104091222A (zh) * | 2014-05-08 | 2014-10-08 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
CN105573840A (zh) * | 2015-12-08 | 2016-05-11 | 东软集团股份有限公司 | 工作流运行期的事件处理方法和装置 |
CN105550280A (zh) * | 2015-12-10 | 2016-05-04 | 天津海量信息技术有限公司 | 登录类型网站的数据采集*** |
CN105389209A (zh) * | 2015-12-25 | 2016-03-09 | 中国建设银行股份有限公司 | 一种异步批量任务处理方法及*** |
CN106126354A (zh) * | 2016-06-21 | 2016-11-16 | 中国建设银行股份有限公司 | 一种异步批量处理方法及*** |
CN107885600A (zh) * | 2017-10-19 | 2018-04-06 | 用友网络科技股份有限公司 | 批量定时任务的调度方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US10789109B2 (en) | 2020-09-29 |
WO2018095298A1 (zh) | 2018-05-31 |
US20190196885A1 (en) | 2019-06-27 |
CN108090731A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090731B (zh) | 一种信息处理方法及设备 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
CN112486648A (zh) | 任务调度方法、装置、***、电子设备和存储介质 | |
CN110489213B (zh) | 一种任务处理方法及处理装置、计算机*** | |
JP7161262B2 (ja) | 自動化プロセスの処理の分散を最適化するシステム | |
US9582312B1 (en) | Execution context trace for asynchronous tasks | |
Tumanov et al. | alsched: Algebraic scheduling of mixed workloads in heterogeneous clouds | |
CN102402458B (zh) | 具有非对称处理器核的***上的虚拟机和/或多级调度支持 | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
US9262220B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
TW406242B (en) | System and method for maximizing usage of computer resources in scheduling of application tasks | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN103455376A (zh) | 对操作***中多个进程对现场可编程门阵列的使用的管理 | |
CN111784318B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109358956B (zh) | 服务调用方法 | |
US9529651B2 (en) | Apparatus and method for executing agent | |
CN105378668B (zh) | 多处理器***中的操作***管理的中断引导 | |
US20090157935A1 (en) | Efficient interrupt message definition | |
CN102541661A (zh) | 等待地址同步接口 | |
CN103778017A (zh) | 改进虚拟处理器调度的亲和性 | |
CN116089040A (zh) | 业务流程的调度方法及其装置、电子设备及存储介质 | |
US20210149726A1 (en) | Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium | |
CN113190427A (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
CN109558254A (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 |