CN105447680A - 基于工作流的订单处理方法及*** - Google Patents
基于工作流的订单处理方法及*** Download PDFInfo
- Publication number
- CN105447680A CN105447680A CN201510815868.1A CN201510815868A CN105447680A CN 105447680 A CN105447680 A CN 105447680A CN 201510815868 A CN201510815868 A CN 201510815868A CN 105447680 A CN105447680 A CN 105447680A
- Authority
- CN
- China
- Prior art keywords
- module
- workflow
- order processing
- sequence event
- service logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- 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
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0603—Catalogue ordering
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于工作流的订单处理方法及***,其中订单处理方法包括执行第一模块的业务逻辑;当第一模块的业务逻辑执行完毕时,工作流中止执行,等待第二模块接受输入;工作流运行时在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中;当第二模块开始接受输入时,工作流运行时将所述第一模块的执行结果从所述数据库中取出重新载入;利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。本发明弥补了现有的订单处理***可读性和可维护性低以及占用大量的***资源的不足,具有可读性和可维护性高并且节省***资源的优点。
Description
技术领域
本发明涉及一种基于工作流的订单处理方法及***。
背景技术
当前订单处理***通常是先按照业务逻辑区分成不同的独立的模块,然后根据各模块的先后关系顺序执行。例如当用户在网站下单订票时,订单处理***会对订单按照预设的流程调用相应的模块进行定位、确认客户、出票等处理。这样的订单处理***会存在以下问题:
1、当项目相对简单,业务逻辑不复杂的时候,当前订单处理***可以在一定程度上满足需求。但随着需求的增加、项目变得庞大、业务逻辑变得错综复杂,执行控制流程会变得相对模糊,由于各模块之间被独立开来,模块之间需要互相通信的代价将变高,***可读性和可维护性随之下降。
2、当前订单处理***的每一级流程的执行是通过上一级流程的触发实现的,本流程在收到上一级流程的通知前必须常驻占据在内存中监听消息,保存一系列的程序状态以供消息到达时使用,占用了大量的***资源。
发明内容
本发明要解决的技术问题是为了克服现有的订单处理***可读性和可维护性低以及占用大量的***资源的缺陷,提供一种可读性和可维护性高并且节省***资源的基于工作流的订单处理方法及***。
本发明是通过以下技术方案解决上述技术问题的:
本发明提供一种基于工作流的订单处理方法,其特点是,包括:
执行第一模块的业务逻辑;
当第一模块执行完毕时,工作流中止执行,等待第二模块接受输入;
工作流运行时在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中;
当第二模块开始接受输入时,工作流运行时将所述第一模块的执行结果从所述数据库中取出重新载入;
利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。
其中,订单处理过程依据订单的处理状态划分为不同的模块,包括第一模块和第二模块,甚至还有第三模块、第四模块等,模块的划分使得模块之间边际更清晰,耦合度大大降低。第一模块和第二模块具有不同的业务逻辑,所述执行结果包括订单的处理状态,如订单处理成功或失败及产生的数据等。所述订单处理方法在第二模块等待输入时利用工作流运行时(workflowruntime)将第一模块的执行结果存储在数据库中,从而无需占用内存。由于无需占用内存,所以即使第二模块等待了很长时间才有输入,也不会因为内存不足而影响到整个***的运行。此外,第一模块的执行结果的重新载入不一定发生在特定的机器的特定进程中,这也意味着本技术方案中不同模块可以充分利用分布式***的优势,缩短订单处理时间,提高处理效率,以及提高可读性和可维护性。
较佳地,所述订单处理方法还包括在执行第一模块的业务逻辑之前执行以下步骤:
构造外层的工作流序列化事件,每个工作流序列化事件分别是多个模块的集合;
分别以工作流消息的形式表示每个工作流序列化事件的各模块的业务代码;
指定每个工作流序列化事件的各模块之间的依赖关系;
所述第一模块为根据订单的种类选取的工作流序列化事件的一个模块,所述第二模块为被选取的工作流序列化事件的一个与所述第一模块具有依赖关系的模块。
其中,构造的工作流序列化事件可以为多个,在订单处理过程中,根据订单的种类不同,会从多个工作流序列化事件中选择一个来执行。每个模块在执行完自身的业务逻辑完成自己的工作后,都会将当前新的状态推送给工作流处理引擎,这个状态推送代码都是同样的,可以在所有模块中复用,使其具有高的可复用性。
较佳地,所述第一模块和所述第二模块部署在独立的集群上。
所述第一模块和所述第二模块部署的集群不同,即使其中一个模块出现故障,也不会影响其它模块。
较佳地,所述订单处理方法还包括:
当所述第二模块的业务逻辑执行完毕时,将所述第二模块的执行结果存储进数据库中。
存储进数据库的第二模块的执行结果可被后续的其它模块使用。
较佳地,所述数据库部署于一服务器上。
本发明还提供一种基于工作流的订单处理***,其特点,包括:
第一执行模块,用于执行第一模块的业务逻辑;
控制模块,用于在第一模块的业务逻辑执行完毕时中止执行工作流,等待第二模块接受输入;
工作流运行时用于在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中;
工作流运行时还用于当第二模块开始接受输入时,将所述第一模块的执行结果从所述数据库中取出重新载入;
第二执行模块,用于利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。
较佳地,所述订单处理***还包括:
构造模块,用于在执行第一模块的业务逻辑之前,构造外层的工作流序列化事件,每个工作流序列化事件分别是多个模块的集合;
表示模块,用于分别以工作流消息的形式表示每个工作流序列化事件的各模块的业务代码;
关系模块,用于指定每个工作流序列化事件的各模块之间的依赖关系;
所述第一模块为根据订单的种类选取的工作流序列化事件的一个模块,所述第二模块为被选取的工作流序列化事件的一个与所述第一模块具有依赖关系的模块。
较佳地,所述第一模块和所述第二模块部署在独立的集群上。
较佳地,所述订单处理***还包括:
写入模块,用于当所述第二模块的业务逻辑执行完毕时,将所述第二模块的执行结果存储进数据库中。
较佳地,所述订单处理***还包括:
服务器,用于部署所述数据库部。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:本发明能够具有高的可读性和可扩展性,节省了***资源,缩短了订单处理时间,提高了处理效率。
附图说明
图1为本发明的实施例的基于工作流的订单处理方法的流程图。
图2为本发明的实施例的基于工作流的订单处理***的***框图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例
一种基于工作流的订单处理方法,如图1所示,包括:
步骤101、构造外层的多个工作流序列化事件,每个工作流序列化事件分别是多个模块的集合。
步骤102、分别以工作流消息的形式表示每个工作流序列化事件的各模块的业务代码。
步骤103、指定每个工作流序列化事件的各模块之间的依赖关系。
其中,每个工作流序列化事件均包括一个第一模块和一个第二模块,但是不同的工作流序列化事件的第一模块可以具有相同或不同业务逻辑,不同的工作流序列化事件的第二模块也可以具有相同或不同业务逻辑。
步骤104、根据订单的种类,从多个工作流序列化事件中选取一个工作流序列化事件。
步骤105、执行被选取的工作流序列化事件的第一模块的业务逻辑。
步骤106、当第一模块的业务逻辑执行完毕时,工作流中止执行,等待第二模块接受输入。所述第二模块为被选取的工作流序列化事件的一个模块且与所述第一模块具有依赖关系。
步骤107、工作流运行时在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中。
步骤108、当第二模块开始接受输入时,工作流运行时将所述第一模块的执行结果从所述数据库中取出重新载入。
步骤109、利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。
步骤110、当所述第二模块的业务逻辑执行完毕时,将所述第二模块的执行结果存储进数据库中,以备后续的其它模块使用。
其中,所述第一模块和所述第二模块部署在独立的集群上。所述数据库部署于一服务器上。
若还有第三模块、第四模块等需要执行,所述订单处理方法还参照步骤105-108在所述第二模块的业务逻辑执行完毕时,工作流中止执行,等待第三模块接受输入,直至所有模块均执行完毕。
本实施例的一种基于工作流的订单处理***,如图2所示,包括:
构造模块201,用于构造外层的多个工作流序列化事件,每个工作流序列化事件分别是多个模块的集合。
表示模块202,用于分别以工作流消息的形式表示每个工作流序列化事件的各模块的业务代码。
关系模块203,用于指定每个工作流序列化事件的各模块之间的依赖关系。
其中,每个工作流序列化事件均包括一个第一模块和一个第二模块,但是不同的工作流序列化事件的第一模块可以具有相同或不同业务逻辑,不同的工作流序列化事件的第二模块也可以具有相同或不同业务逻辑。
选取模块204,用于根据订单的种类不同,从多个工作流序列化事件中选取一个工作流序列化事件。
第一执行模块205,用于执行被选取的工作流序列化事件的第一模块的业务逻辑。
控制模块206,用于在第一模块的业务逻辑执行完毕时中止执行工作流,等待第二模块接受输入。所述第二模块为被选取的工作流序列化事件的一个模块且与所述第一模块具有依赖关系。
工作流运行时207用于在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中。
工作流运行时207还用于在第二模块开始接受输入时将所述第一模块的执行结果从所述数据库中取出重新载入。
第二执行模块208,用于利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。
写入模块209,用于在所述第二模块的业务逻辑执行完毕时,将所述第二模块的执行结果存储进数据库中。
其中,所述第一模块和所述第二模块部署在独立的集群上。
所述订单处理***还包括:
服务器210,用于部署所述数据库。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种基于工作流的订单处理方法,其特征在于,包括:
执行第一模块的业务逻辑;
当第一模块的业务逻辑执行完毕时,工作流中止执行,等待第二模块接受输入;
工作流运行时在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中;
当第二模块开始接受输入时,工作流运行时将所述第一模块的执行结果从所述数据库中取出重新载入;
利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。
2.如权利要求1所述的订单处理方法,其特征在于,所述订单处理方法还包括在执行第一模块的业务逻辑之前执行以下步骤:
构造外层的工作流序列化事件,每个工作流序列化事件分别是多个模块的集合;
分别以工作流消息的形式表示每个工作流序列化事件的各模块的业务代码;
指定每个工作流序列化事件的各模块之间的依赖关系;
所述第一模块为根据订单的种类选取的工作流序列化事件的一个模块,所述第二模块为被选取的工作流序列化事件的一个与所述第一模块具有依赖关系的模块。
3.如权利要求1所述的订单处理方法,其特征在于,所述第一模块和所述第二模块部署在独立的集群上。
4.如权利要求1所述的订单处理方法,其特征在于,所述订单处理方法还包括:
当所述第二模块的业务逻辑执行完毕时,将所述第二模块的执行结果存储进数据库中。
5.如权利要求4所述的订单处理方法,其特征在于,所述数据库部署于一服务器上。
6.一种基于工作流的订单处理***,其特征在于,包括:
第一执行模块,用于执行第一模块的业务逻辑;
控制模块,用于在第一模块的业务逻辑执行完毕时中止执行工作流,等待第二模块接受输入;
工作流运行时用于在等待第二模块接受输入时将所述第一模块的执行结果存储进数据库中;
工作流运行时还用于在第二模块开始接受输入时将所述第一模块的执行结果从所述数据库中取出重新载入;
第二执行模块,用于利用重新载入的所述第一模块的执行结果,执行第二模块的业务逻辑。
7.如权利要求6所述的订单处理***,其特征在于,所述订单处理***还包括:
构造模块,用于在执行第一模块的业务逻辑之前,构造外层的工作流序列化事件,每个工作流序列化事件分别是多个模块的集合;
表示模块,用于分别以工作流消息的形式表示每个工作流序列化事件的各模块的业务代码;
关系模块,用于指定每个工作流序列化事件的各模块之间的依赖关系;
所述第一模块为根据订单的种类选取的工作流序列化事件的一个模块,所述第二模块为被选取的工作流序列化事件的一个与所述第一模块具有依赖关系的模块。
8.如权利要求6所述的订单处理***,其特征在于,所述第一模块和所述第二模块部署在独立的集群上。
9.如权利要求6所述的订单处理***,其特征在于,所述订单处理***还包括:
写入模块,用于在所述第二模块的业务逻辑执行完毕时,将所述第二模块的执行结果存储进数据库中。
10.如权利要求9所述的订单处理***,其特征在于,所述订单处理***还包括:
服务器,用于部署所述数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510815868.1A CN105447680A (zh) | 2015-11-20 | 2015-11-20 | 基于工作流的订单处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510815868.1A CN105447680A (zh) | 2015-11-20 | 2015-11-20 | 基于工作流的订单处理方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105447680A true CN105447680A (zh) | 2016-03-30 |
Family
ID=55557826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510815868.1A Pending CN105447680A (zh) | 2015-11-20 | 2015-11-20 | 基于工作流的订单处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447680A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009771A (zh) * | 2017-11-29 | 2018-05-08 | 深圳市易达云科技有限公司 | 一种订单状态自动跃迁方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755721A (zh) * | 2004-10-01 | 2006-04-05 | 微软公司 | 组件化和可扩展的工作流模型 |
WO2007136441A1 (en) * | 2006-03-03 | 2007-11-29 | Bayview Lending Group Llc | Golf clubs and golf club heads having feel altering systems |
CN102934111A (zh) * | 2010-06-04 | 2013-02-13 | Mcl***有限公司 | 集成的工作流和数据库事务 |
CN103036955A (zh) * | 2012-12-03 | 2013-04-10 | 上海现代先进超精密制造中心有限公司 | 多媒体播放终端的监控***与监控方法 |
CN103678591A (zh) * | 2013-12-12 | 2014-03-26 | 用友软件股份有限公司 | 自动执行多业务单据统计处理的装置和方法 |
-
2015
- 2015-11-20 CN CN201510815868.1A patent/CN105447680A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755721A (zh) * | 2004-10-01 | 2006-04-05 | 微软公司 | 组件化和可扩展的工作流模型 |
WO2007136441A1 (en) * | 2006-03-03 | 2007-11-29 | Bayview Lending Group Llc | Golf clubs and golf club heads having feel altering systems |
CN102934111A (zh) * | 2010-06-04 | 2013-02-13 | Mcl***有限公司 | 集成的工作流和数据库事务 |
CN103036955A (zh) * | 2012-12-03 | 2013-04-10 | 上海现代先进超精密制造中心有限公司 | 多媒体播放终端的监控***与监控方法 |
CN103678591A (zh) * | 2013-12-12 | 2014-03-26 | 用友软件股份有限公司 | 自动执行多业务单据统计处理的装置和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009771A (zh) * | 2017-11-29 | 2018-05-08 | 深圳市易达云科技有限公司 | 一种订单状态自动跃迁方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
CN106033373A (zh) | 一种云计算平台中虚拟机资源调度方法和调度*** | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
US9519537B2 (en) | Apparatus, system and method for application log data processing | |
CN105183564A (zh) | 基于云测试平台的设备调度方法、装置及*** | |
CN110188135A (zh) | 文件生成方法及设备 | |
CN104683472A (zh) | 一种支持大数据量的数据传输方法 | |
CN106034113A (zh) | 数据处理方法及装置 | |
CN110619014A (zh) | 一种基于etl的数据抽取方法 | |
CN106170013B (zh) | 一种基于Redis的Kafka消息唯一性方法 | |
CN102880473A (zh) | 基于quartz框架的任务执行方法及装置 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN105635231A (zh) | 一种分布式***的调用方法和装置 | |
CN107122952B (zh) | 基于规则的流程调度方法及*** | |
CN105447680A (zh) | 基于工作流的订单处理方法及*** | |
CN109766131A (zh) | 基于多线程技术实现软件智能化自动升级的***及方法 | |
CN101458628A (zh) | 一种程序版本管理方法 | |
CN115829715A (zh) | 一种银行业交易调度中台控制方法和银行业交易调度中台 | |
CN105760215A (zh) | 基于映射规约模型分布式文件***作业的运行方法 | |
CN111130955B (zh) | 基于互联网信贷***的分布式链路监控方法 | |
CN116263717A (zh) | 基于事件的订单业务处理方法及装置 | |
CN114116123A (zh) | 应用的扩容方法及装置 | |
CN108683612B (zh) | 一种消息获取方法和装置 | |
US20160127502A1 (en) | Method for operating machines and system using the same | |
CN112561264A (zh) | 企业内容的服务方法、服务***和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |