CN115423453A - 活动流程处理方法及装置 - Google Patents

活动流程处理方法及装置 Download PDF

Info

Publication number
CN115423453A
CN115423453A CN202211207250.3A CN202211207250A CN115423453A CN 115423453 A CN115423453 A CN 115423453A CN 202211207250 A CN202211207250 A CN 202211207250A CN 115423453 A CN115423453 A CN 115423453A
Authority
CN
China
Prior art keywords
activity
flow
sub
information
rule
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
Application number
CN202211207250.3A
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202211207250.3A priority Critical patent/CN115423453A/zh
Publication of CN115423453A publication Critical patent/CN115423453A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种活动流程处理方法及装置,该方法包括:获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。本申请应用轻量级流程低代码化设计,预先设置了工作流模板,将待处理活动的各个活动子流程通过流程组件及DSL流程执行引擎进行处理,从而可以灵活的适配不同类型的待处理活动,支持定制化流程。

Description

活动流程处理方法及装置
技术领域
本申请实施例涉及互联网技术领域,具体涉及一种活动流程处理方法及装置。
背景技术
网站运营期间,需要不断在用户活动上创造新的活动或活动模式,以提高用户粘性,吸引用户参与用户活动。从应用架构目标层面上,研发侧既希望新活动能快速上线,又希望系统线上稳定,然而现有技术通常采用开源框架,也就是说,每需要推出一个活动,研发侧就需要通过流程开源框架编写该活动需要的框架,逐一上线,现有技术中的流程开源引擎框架包括:Activiti流程引擎、Flowable流程引擎、LiteFlow流程引擎等,优势是开箱即用,功能全面,但与之并存的是数据库(database)较为复杂且配置维护困难的问题,例如:LiteFlow流程引擎框架的DSL复杂语法、Activiti7.0流程引擎需引入20张以上的数据表而导致数据库过于复杂。
发明内容
鉴于上述问题,本申请提出了一种活动流程处理方法、装置、计算设备及计算机存储介质,用于解决以下问题:现有的活动流程处理方法过于复杂、配置维护困难的问题。
根据本申请实施例的一个方面,提供了一种活动流程处理方法,其包括:
获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;
配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;
根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。
进一步地,对活动信息进行分析,得到待处理活动的各个活动子流程进一步包括:
对活动信息进行解析,得到活动流程信息;
对活动流程信息进行拆分,确定待处理活动的各个活动子流程。
进一步地,配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系进一步包括:
根据各个活动子流程的执行逻辑信息,配置各个活动子流程对应的各个流程组件的执行脚本;
根据各个活动子流程之间的执行先后顺序,确定各个流程组件之间的关联关系。
进一步地,各个活动子流程包括:规则判定子流程;
根据各个活动子流程的执行逻辑信息,配置各个活动子流程对应的各个流程组件的执行脚本进一步包括:
对活动信息进行分析,得到规则判定子流程对应的业务规则信息;
对业务规则信息进行解析,生成规则配置信息;
根据规则判定子流程的执行逻辑信息和规则配置信息,配置规则判定子流程对应的规则判定组件的执行脚本。
进一步地,对业务规则信息进行解析,生成规则配置信息进一步包括:
对业务规则信息进行解析,确定待判定主体对象、对比值和操作符;
利用待判定主体对象、对比值和操作符,生成规则配置信息。
进一步地,利用待判定主体对象、对比值和操作符,生成规则配置信息进一步包括:
对待判定主体对象、对比值和操作符进行组合处理,生成规则配置信息。
进一步地,根据各个活动子流程之间的执行先后顺序,确定各个流程组件之间的关联关系进一步包括:
根据各个活动子流程之间的执行先后顺序以及规则判定子流程的规则判定结果分支,确定各个流程组件之间的关联关系。
进一步地,根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板进一步包括:
将各个流程组件作为各个流程节点;
依据各个流程组件之间的关联关系,确定各个流程节点之间的边;
利用各个流程节点和各个流程节点之间的边,构造有向无环图。
进一步地,在构造待处理活动对应的工作流模板之后,方法还包括:
按照待处理活动对应的工作流模板,执行各个流程组件。
进一步地,按照待处理活动对应的工作流模板,执行各个流程组件进一步包括:
按照待处理活动对应的工作流模板,确定当前待执行的流程组件;
利用环形队列对当前待执行的流程组件进行并行执行。
进一步地,利用环形队列对当前待执行的流程组件进行并行执行进一步包括:
从当前待执行的流程组件对应的线程池中获取执行线程;
将执行线程添加至环形队列中进行执行。
根据本申请实施例的另一方面,提供了一种活动流程处理装置,其包括:
活动获取模块,用于获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;
配置模块,用于配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;
模板构造模块,用于根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。
根据本申请实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述一种活动流程处理方法对应的操作。
根据本申请实施例的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述一种活动流程处理方法对应的操作。
根据本申请实施例提供的一种活动流程处理方法及装置,通过获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。本申请应用轻量级流程低代码化设计,预先设置了工作流模板,将待处理活动的各个活动子流程通过流程组件及DSL流程执行引擎进行处理,从而可以灵活的适配不同类型的待处理活动,支持定制化流程;本申请对活动信息进行分析,得到待处理活动所涉及的规则判定子流程对应的业务规则信息,对业务规则信息进行解析,生成规则配置信息,根据规则判定子流程的执行逻辑信息和规则配置信息,配置规则判定子流程对应的规则判定组件的执行脚本,在新增促销活动等待处理活动时,能通过工作流模板扩展定义新活动类型,快速复用已有的流程组件、执行逻辑信息和规则配置信息;进一步地,按照待处理活动对应的工作流模板,确定当前待执行的流程组件;利用环形队列对当前待执行的流程组件进行并行执行;通过栈结构实现了一套简单的规则条件解析,并行分别计算各个待执行的流程组件的规则条件结果,最后通过规则引擎计算规则的检查结果,保证了各个线程运行安全的同时,可以高效运行各个线程;该方案不仅实现过程简单,能够便捷地完成活动配置与维护,以便将活动进行迅速推出与实施。
上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申请实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本申请实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本申请一个实施例的一种活动流程处理方法的流程示意图;
图2a示出了根据本申请另一个实施例的一种活动流程处理方法的流程示意图;
图2b示出了根据本申请另一个实施例的一种活动流程处理方法的规则表达式示意图;
图2c示出了根据本申请另一个实施例的一种活动流程处理方法的流程组件关联关系示意图;
图2d示出了根据本申请另一个实施例的一种活动流程处理方法的执行过程示意图;
图3示出了根据本申请一个实施例的一种活动流程处理装置的结构框图;
图4示出了根据本申请一个实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
引擎(Engine):是电子平台上开发程序或系统的核心组件;利用引擎,开发者可迅速建立、铺设程序所需的功能,或利用其辅助程序的运转;一般而言,引擎是一个程序或一套系统的支持部分;常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等。
优惠券:包括定向或通用优惠券;可在品类、品牌、角色、IP等不同维度上进行可用商品的范围圈定。
促销活动:用户正常下单付款时,如果满足促销规则,可以直接减免部分价格,或支付完成后返回一定价值的优惠;例如:秒杀、新人专享价、开启宝箱等促销活动。
动态脚本语言(Dynamic Script Language,DSL):是对脚本语言的一种扩展。具体地,DSL使用“:”和参数名表示普通参数,使用“#”和参数名表示嵌入式参数,并使用特殊字符“#[]”来标记动态片段;当解析时,判断实际传入参数值是否为空(null)或不存在,以决定是否保留该动态片段,从而达到动态执行不同脚本的目的。使用DSL可以避免手动拼接繁杂的脚本,使得用户能从繁杂的业务逻辑中解脱出来;此外,DSL脚本支持宏,从而可以增强脚本的动态逻辑处理能力。
有向无环图(Directed Acyclic Graph,DAG):是描述一项工程或系统的进行过程的有效工具;DAG无论是从任何节点出发,只要按照指针方向走,无论选择哪种路径都不能回到起点的图。
现有技术中的低代码平台大致分为两类:零代码平台和低代码平台;其中,零代码平台更加追求细分场景上的研发效率;例如,纯流程应用、纯表单填报等,但处理具有一定复杂度的应用的能力却难以预测;低代码平台,看似与传统软件开发模式没有太大区别,但从数据库、模型驱动的设计出发,有逻辑、页面等概念,可以支持更复杂的应用。在本实施例中,低代码平台需要具备基本的代码逻辑描述能力、数据访问能力、对流程定义能力。进一步地,低代码平台还要具备高可用、高性能和可维护性等。因此,本实施例采用低代码平台,通过构造工作流模板和服务流程,能支撑现有及未来可预见的各种活动和活动规则。
图1示出了根据本申请一个实施例的一种活动流程处理方法的流程示意图,如图1所示,该方法包括如下步骤S101-步骤S103:
步骤S101:获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程。
在本实施例中,定义了流程引擎和规则引擎,在本步骤中,获取待处理活动的活动信息,一般来说,待处理活动可以包括平台待推出的促销活动等,根据待处理活动的业务特性等活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;例如,针对促销活动,根据促销活动的业务特性进行分析,得到该促销活动的活动子流程可以包括:用户登录子流程、规则判定子流程、风控子流程、资源发放子流程等。
步骤S102:配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系。
在本步骤中,根据待处理活动的各个活动子流程,配置对应的流程组件,根据两两流程组件之间的执行逻辑,确定多个流程组件之间的关联关系,其中,针对每个流程组件,可以从预先设置的数据库中查询是否存在可复用的流程组件,若存在可复用的流程组件,可直接调取并应用该流程组件,将其放入工作流模板中。
步骤S103:根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。
依据每个流程组件之间的关联关系,构造一个有向无环图,例如,针对促销活动,确定了该促销活动的活动子流程包括:用户登录子流程、规则判定子流程、风控子流程和资源发放子流程,针对用户登录子流程、规则判定子流程、风控子流程、资源发放子流程各自对应的流程组件,依次确定用户登录流程组件与其他每个子流程对应的流程组件的关联关系,最终形成一个有向无环图,以该有向无环图作为该促销活动的工作流模板,按照待处理活动对应的工作流模板,执行各个流程组件,以实现对活动的实施。
根据本申请实施例提供的一种活动流程处理方法,通过获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。本方法应用轻量级流程低代码化设计,预先设置了工作流模板,将待处理活动的各个活动子流程通过流程组件及DSL流程执行引擎进行处理,从而可以灵活的适配不同类型的待处理活动,支持定制化流程。
图2a示出了根据本申请另一个实施例的一种活动流程处理方法的流程示意图,如图2a所示,该方法包括如下步骤:
步骤S201:获取待处理活动的活动信息,对活动信息进行解析,得到活动流程信息。
具体地说,获取平台待推出的促销活动等待处理活动的活动信息,对每个待处理活动的活动信息进行解析,得到其活动流程信息。
步骤S202:对活动流程信息进行拆分,确定待处理活动的各个活动子流程。
具体地说,可以将活动信息按照流程进行拆分,确定待处理活动的各个活动子流程。例如,针对某个促销活动,将其流程拆分为用户登录子流程、风控子流程、规则判定子流程、资源发放子流程等。
步骤S203:根据各个活动子流程的执行逻辑信息,配置各个活动子流程对应的各个流程组件的执行脚本。
在本步骤中,可以使用DSL来编写执行脚本,可以避免手动拼接繁杂的脚本。
在一种可选的实施方式中,当各个活动子流程包括:规则判定子流程时,步骤S203可进一步包括下述步骤1-步骤3:
步骤1:对活动信息进行分析,得到规则判定子流程对应的业务规则信息。
具体地说,各个活动子流程包括规则判定子流程,在工作流模板中,规则判定子流程用于确定接下来执行哪个活动子流程;其中,业务规则信息可以是指从活动信息中提取出的非计算机语言的规则描述;例如,文本形式的描述。
步骤2:对业务规则信息进行解析,生成规则配置信息。
图2b示出了根据本申请另一个实施例的一种活动流程处理方法的规则表达式示意图,如图2b所示,对业务规则信息进行解析,生成计算机语言形式的规则配置信息,规则配置信息具体可包括规则表达式的形式的配置信息。在后续的执行工作流模板的过程中,如果涉及到规则判定子流程,则需要基于语法树对规则配置信息进行解析,作出规则判定结果,从而确定接下来执行哪个活动子流程对应的流程组件。
在一种可选的实施方式中,步骤2进一步包括:对业务规则信息进行解析,确定待判定主体对象、对比值和操作符;利用待判定主体对象、对比值和操作符,生成规则配置信息。
具体地说,规则配置信息中的规则表达式包括:待判定主体对象、对比值和操作符;其中,待判定主体对象可以包括:支付金额、商品数量等;对比值可以是支付金额的对比值、商品数量的对比值等;操作符可以包括:<、>、=、≤、≥等符号;需要说明的是,该对比值和操作符可以根据促销活动实际场景进行预先设置;具体地说,对待判定主体对象、对比值和操作符进行组合处理,生成规则配置信息;以待判定主体对象为支付金额和商品数量;支付金额的对比值为100元、商品数量的对比值为2个;以及操作符为≤和>为例;则规则条件1为支付金额≤100元,规则条件2为商品数量>2个;规则定义1为支付金额判断;规则定义2为商品数量判断;则该规则配置信息可以表示为:支付金额≤100元&&商品数量>2个。
步骤3:根据规则判定子流程的执行逻辑信息和规则配置信息,配置规则判定子流程对应的规则判定组件的执行脚本。
步骤S204:根据各个活动子流程之间的执行先后顺序,确定各个流程组件之间的关联关系。
在一种可选的实施方式中,步骤S204进一步包括:根据各个活动子流程之间的执行先后顺序以及规则判定子流程的规则判定结果分支,确定各个流程组件之间的关联关系。
图2c示出了根据本申请另一个实施例的一种活动流程处理方法的流程组件关联关系示意图,如图2c所示,将各个活动子流程涉及到的用户判定、限次判定/占用、规则校验、资源发放等流程进行抽象,每个活动子流程都内聚为一个原子节点,沉淀为活动流程中的可复用流程组件;以促销活动为例,可以包括促销活动的事件组件A、规则判定子流程对应的规则组件B、用户判定子流程对应的用户组件C、风控子流程对应的风控组件D、资源发放子流程对应的资源组件E等;其中,图2c中每一个节点是一个独立的流程组件,边是规则判定的条件;则图2c中构建的DAG执行链路主要有两条:事件组件A→规则组件B→若规则组件B判定结果为是,则执行用户组件C→资源组件E;以及,事件组件A→规则组件B→若规则组件B判定结果为否,则执行风控组件D→资源组件E。
需要说明的是,图2c仅给出了其中一种示例,并非完整活动的实际流程设计,也就是说,针对不同的促销活动,上述每个流程组件都为可复用流程组件,根据各个活动子流程之间的执行先后顺序以及规则判定子流程的规则判定结果分支,各个流程组件之间的关联关系也会略有不同,例如,规则组件B判定结果为是后也可以接着执行风控组件D进行风控校验。
步骤S205:根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。
在一种可选的实施方式中,待处理活动对应的工作流模板包括:有向无环图;步骤S205进一步包括:将各个流程组件作为各个流程节点;依据各个流程组件之间的关联关系,确定各个流程节点之间的边;利用各个流程节点和各个流程节点之间的边,构造有向无环图。
具体地说,基于低代码化平台,可以通过JS对象标记(JavaScript ObjectNotation,JSON)数据结构定义一个DSL工作流模板,通过DAG刻画流程组件(即DAG的节点)之间的关联关系,使用规则引擎(例如Qlexpress规则引擎)判定节点执行规则是否通过,刻画描述各个流程组件(节点)之间的依赖关系和流程驱动。
在一种可选的实施方式中,该方法还可以包括步骤S206:按照待处理活动对应的工作流模板,执行各个流程组件。
步骤S206进一步包括:按照待处理活动对应的工作流模板,确定当前待执行的流程组件;利用环形队列对当前待执行的流程组件进行并行执行。
图2d示出了根据本申请另一个实施例的一种活动流程处理方法的执行过程示意图,如图2d所示,具体地说,从当前待执行的流程组件对应的线程池中获取执行线程;将执行线程添加至环形队列中进行执行;使用Java并发编程框架Disruptor构造高效环形队列,对流程组件进行并行化执行,从而可以提升吞吐;其中,环形队列是首尾相连的、先进先出(First Input First Output,FIFO)的数据结构,采用数组的线性空间,数据组织简单,能很快知道队列是否满为空,能以很快速度的来存取数据。
具体地说,待处理活动对应的工作流模板包括流程组件和流程组件之间的关联关系,确定该流程组件的执行队列,以图2c所示的执行链路为例,若当前待执行的流程组件为规则组件B,从规则组件B对应的线程池中获取执行线程,将该执行线程添加至环形队列中进行执行;若通过执行规则组件B的执行线程得到规则组件B的判定结果为是,说明下一个需要执行的流程组件为用户组件C,则继续将用户组件C作为当前待执行的流程组件,从用户组件C对应的线程池中获取执行线程,将执行线程添加至环形队列中进行执行。
例如,以活动为用户购物返优惠券为例,由于在活动期间会有很多用户同时参与,相当于针对每个用户都需要执行一遍各个流程组件,每个流程组件的执行是通过执行其对应的线程池中的线程实现的(不同流程组件的线程池是相互独立的、隔离的),多个用户就会存在多线程并发执行,这样执行效率快。需要说明的是,针对不同用户,当前待执行的流程组件可能是不同的,比如针对用户A正在执行风控组件,而针对用户B已经执行到了资源组件。
根据本申请实施例提供的一种活动流程处理方法,通过获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。本方法应用轻量级流程低代码化设计,预先设置了工作流模板,将待处理活动的各个活动子流程通过流程组件及DSL流程执行引擎进行处理,从而可以灵活的适配不同类型的待处理活动,支持定制化流程;本申请对活动信息进行分析,得到待处理活动所涉及的规则判定子流程对应的业务规则信息,对业务规则信息进行解析,生成规则配置信息,根据规则判定子流程的执行逻辑信息和规则配置信息,配置规则判定子流程对应的规则判定组件的执行脚本,在新增促销活动等待处理活动时,能通过工作流模板扩展定义新活动类型,快速复用已有的流程组件、执行逻辑信息和规则配置信息;进一步地,按照待处理活动对应的工作流模板,确定当前待执行的流程组件;利用环形队列对当前待执行的流程组件进行并行执行;通过栈结构实现了一套简单的规则条件解析,并行分别计算各个待执行的流程组件的规则条件结果,最后通过规则引擎计算规则的检查结果,保证了各个线程运行安全的同时,可以高效运行各个线程;该方案不仅实现过程简单,能够便捷地完成活动配置与维护,以便将活动进行迅速推出与实施。
图3示出了根据本申请一个实施例的一种活动流程处理装置的结构框图,如图3所示,该装置包括:活动获取模块301、配置模块302、模板构造模块303以及执行模块304。
活动获取模块301,用于获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程。
在一种可选的实施方式中,活动获取模块301进一步用于:对活动信息进行解析,得到活动流程信息;对活动流程信息进行拆分,确定待处理活动的各个活动子流程。
配置模块302,用于配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系。
在一种可选的实施方式中,配置模块302进一步用于:根据各个活动子流程的执行逻辑信息,配置各个活动子流程对应的各个流程组件的执行脚本;根据各个活动子流程之间的执行先后顺序,确定各个流程组件之间的关联关系。
在一种可选的实施方式中,各个活动子流程包括:规则判定子流程;配置模块302进一步用于:对活动信息进行分析,得到规则判定子流程对应的业务规则信息;对业务规则信息进行解析,生成规则配置信息;根据规则判定子流程的执行逻辑信息和规则配置信息,配置规则判定子流程对应的规则判定组件的执行脚本。
在一种可选的实施方式中,配置模块302进一步用于:对业务规则信息进行解析,确定待判定主体对象、对比值和操作符;利用待判定主体对象、对比值和操作符,生成规则配置信息。
在一种可选的实施方式中,配置模块302进一步用于:对待判定主体对象、对比值和操作符进行组合处理,生成规则配置信息。
在一种可选的实施方式中,配置模块302进一步用于:根据各个活动子流程之间的执行先后顺序以及规则判定子流程的规则判定结果分支,确定各个流程组件之间的关联关系。
模板构造模块303,用于根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。
在一种可选的实施方式中,待处理活动对应的工作流模板包括:有向无环图;模板构造模块303进一步用于:将各个流程组件作为各个流程节点;依据各个流程组件之间的关联关系,确定各个流程节点之间的边;利用各个流程节点和各个流程节点之间的边,构造有向无环图。
在一种可选的实施方式中,该装置还包括执行模块304,用于按照待处理活动对应的工作流模板,执行各个流程组件。
在一种可选的实施方式中,执行模块304进一步用于:按照待处理活动对应的工作流模板,确定当前待执行的流程组件;利用环形队列对当前待执行的流程组件进行并行执行。
在一种可选的实施方式中,执行模块304进一步用于:从当前待执行的流程组件对应的线程池中获取执行线程;将执行线程添加至环形队列中进行执行。
以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。
根据本申请实施例提供的一种活动流程处理装置,通过获取待处理活动的活动信息,对活动信息进行分析,得到待处理活动的各个活动子流程;配置各个活动子流程对应的各个流程组件,并确定各个流程组件之间的关联关系;根据各个流程组件以及各个流程组件之间的关联关系,构造待处理活动对应的工作流模板。本装置应用轻量级流程低代码化设计,预先设置了工作流模板,将待处理活动的各个活动子流程通过流程组件及DSL流程执行引擎进行处理,从而可以灵活的适配不同类型的待处理活动,支持定制化流程;本申请对活动信息进行分析,得到待处理活动所涉及的规则判定子流程对应的业务规则信息,对业务规则信息进行解析,生成规则配置信息,根据规则判定子流程的执行逻辑信息和规则配置信息,配置规则判定子流程对应的规则判定组件的执行脚本,在新增促销活动等待处理活动时,能通过工作流模板扩展定义新活动类型,快速复用已有的流程组件、执行逻辑信息和规则配置信息;进一步地,按照待处理活动对应的工作流模板,确定当前待执行的流程组件;利用环形队列对当前待执行的流程组件进行并行执行;通过栈结构实现了一套简单的规则条件解析,并行分别计算各个待执行的流程组件的规则条件结果,最后通过规则引擎计算规则的检查结果,保证了各个线程运行安全的同时,可以高效运行各个线程;该方案不仅实现过程简单,能够便捷地完成活动配置与维护,以便将活动进行迅速推出与实施。
本申请实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,可执行指令可执行上述任意方法实施例中的一种活动流程处理方法。
图4示出了根据本申请实施例的一种计算设备的结构示意图,本申请实施例的具体实施例并不对计算设备的具体实现做限定。
如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述一种活动流程处理方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行上述任意方法实施例中的活动流程处理方法。程序410中各步骤的具体实现可以参见上述活动流程处理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本申请实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请实施例的内容,并且上面对特定语言所做的描述是为了披露本申请实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本申请实施例的示例性实施例的描述中,本申请实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例中的一些或者全部部件的一些或者全部功能。本申请实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请实施例进行说明而不是对本申请实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种活动流程处理方法,其包括:
获取待处理活动的活动信息,对所述活动信息进行分析,得到所述待处理活动的各个活动子流程;
配置所述各个活动子流程对应的各个流程组件,并确定所述各个流程组件之间的关联关系;
根据所述各个流程组件以及所述各个流程组件之间的关联关系,构造所述待处理活动对应的工作流模板。
2.根据权利要求1所述的方法,所述对所述活动信息进行分析,得到所述待处理活动的各个活动子流程进一步包括:
对所述活动信息进行解析,得到活动流程信息;
对所述活动流程信息进行拆分,确定所述待处理活动的各个活动子流程。
3.根据权利要求1所述的方法,所述配置所述各个活动子流程对应的各个流程组件,并确定所述各个流程组件之间的关联关系进一步包括:
根据所述各个活动子流程的执行逻辑信息,配置所述各个活动子流程对应的各个流程组件的执行脚本;
根据所述各个活动子流程之间的执行先后顺序,确定所述各个流程组件之间的关联关系。
4.根据权利要求3所述的方法,所述各个活动子流程包括:规则判定子流程;
所述根据所述各个活动子流程的执行逻辑信息,配置所述各个活动子流程对应的各个流程组件的执行脚本进一步包括:
对所述活动信息进行分析,得到所述规则判定子流程对应的业务规则信息;
对所述业务规则信息进行解析,生成规则配置信息;
根据所述规则判定子流程的执行逻辑信息和所述规则配置信息,配置所述规则判定子流程对应的规则判定组件的执行脚本。
5.根据权利要求4所述的方法,所述对所述业务规则信息进行解析,生成规则配置信息进一步包括:
对所述业务规则信息进行解析,确定待判定主体对象、对比值和操作符;
利用所述待判定主体对象、所述对比值和所述操作符,生成所述规则配置信息。
6.根据权利要求5所述的方法,所述利用所述待判定主体对象、所述对比值和所述操作符,生成所述规则配置信息进一步包括:
对所述待判定主体对象、所述对比值和所述操作符进行组合处理,生成所述规则配置信息。
7.根据权利要求4-6任一项中所述的方法,所述根据所述各个活动子流程之间的执行先后顺序,确定所述各个流程组件之间的关联关系进一步包括:
所述根据所述各个活动子流程之间的执行先后顺序以及所述规则判定子流程的规则判定结果分支,确定所述各个流程组件之间的关联关系。
8.根据权利要求1-7任一项中所述的方法,所述根据所述各个流程组件以及所述各个流程组件之间的关联关系,构造所述待处理活动对应的工作流模板进一步包括:
将所述各个流程组件作为各个流程节点;
依据所述各个流程组件之间的关联关系,确定所述各个流程节点之间的边;
利用所述各个流程节点和所述各个流程节点之间的边,构造有向无环图。
9.根据权利要求1-8任一项中所述的方法,在构造所述待处理活动对应的工作流模板之后,所述方法还包括:
按照所述待处理活动对应的工作流模板,执行所述各个流程组件。
10.根据权利要求9所述的方法,所述按照所述待处理活动对应的工作流模板,执行所述各个流程组件进一步包括:
按照所述待处理活动对应的工作流模板,确定当前待执行的流程组件;
利用环形队列对当前待执行的流程组件进行并行执行。
11.根据权利要求10所述的方法,所述利用环形队列对当前待执行的流程组件进行并行执行进一步包括:
从当前待执行的流程组件对应的线程池中获取执行线程;
将所述执行线程添加至所述环形队列中进行执行。
12.一种活动流程处理装置,其包括:
活动获取模块,用于获取待处理活动的活动信息,对所述活动信息进行分析,得到所述待处理活动的各个活动子流程;
配置模块,用于配置所述各个活动子流程对应的各个流程组件,并确定所述各个流程组件之间的关联关系;
模板构造模块,用于根据所述各个流程组件以及所述各个流程组件之间的关联关系,构造所述待处理活动对应的工作流模板。
13.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-11中任一项所述的一种活动流程处理方法对应的操作。
14.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-11中任一项所述的一种活动流程处理方法对应的操作。
CN202211207250.3A 2022-09-30 2022-09-30 活动流程处理方法及装置 Pending CN115423453A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211207250.3A CN115423453A (zh) 2022-09-30 2022-09-30 活动流程处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211207250.3A CN115423453A (zh) 2022-09-30 2022-09-30 活动流程处理方法及装置

Publications (1)

Publication Number Publication Date
CN115423453A true CN115423453A (zh) 2022-12-02

Family

ID=84205946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211207250.3A Pending CN115423453A (zh) 2022-09-30 2022-09-30 活动流程处理方法及装置

Country Status (1)

Country Link
CN (1) CN115423453A (zh)

Similar Documents

Publication Publication Date Title
CN111464380B (zh) 多个业务项目的并行测试方法、装置及系统
CN1956454B (zh) 基于加权成本捆绑并发送工作单元到服务器的方法和系统
CN110032400A (zh) 一种加载插件的方法及电子终端
CN101640694A (zh) 生成简单对象访问协议消息的方法及流程引擎
US8904364B2 (en) Execution in workflow BPM engine
US8601454B2 (en) Device and method for automatically optimizing composite applications having orchestrated activities
CN116911588A (zh) 业务流程执行方法、装置、设备及存储介质
CN114490116B (zh) 数据处理方法、装置、电子设备及存储介质
CN115509522A (zh) 面向低代码场景的接口编排方法、系统、电子设备
CN110489124B (zh) 源代码执行方法、装置、存储介质及计算机设备
CN113051049A (zh) 任务调度系统、方法、电子设备及可读存储介质
CN112199184A (zh) 一种跨语言任务调度方法、装置、设备及可读存储介质
CN116932147A (zh) 流式作业处理方法、装置、电子设备及介质
CN116820714A (zh) 一种算力设备的调度方法、装置、设备和存储介质
CN115423453A (zh) 活动流程处理方法及装置
US20220365812A1 (en) Method and system for sustainability measurement
CN112114817B (zh) 基于cobol语言的数据字典字段信息获取方法及装置
CN116302464A (zh) 基于单向链表的云平台资源编排方法、装置及电子设备
CN113051173B (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
CN112650502A (zh) 批处理任务处理方法、装置、计算机设备和存储介质
CN112817573B (zh) 用于构建流式计算应用的方法、装置、计算机系统和介质
CN112015436A (zh) 短信平台部署方法及装置、计算设备、计算机存储介质
CN111459576B (zh) 一种数据分析处理系统和模型运行方法
CN110825438B (zh) 用于模拟人工智能芯片的数据处理的方法和装置
Žák et al. Modular e-Commerce Data Warehouse using Microservices

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