概述
本文描述事件触发的模型和运作机制。
总体概览和名词
事件模型的总体概览如下图:
名词解释:
- 方案:为了达到特定的业务目的而制定出来的所有方法和策略的统称。一个方案包括:名称、有效期、用户群和流程。
- 流程:对方案的执行过程的一种抽象概括。
- 流程分为多个阶段;
- 流程从一个用户群开始,至某个阶段结束。
- 流程当中可以存在分支,上图的例子中,存在 4 条可能的执行路线,分别是:1-2-3,1-2-4,1-2-5,1-2-6。
- 阶段:对在特定条件下执行特定操作的归纳。后面将详细介绍。
- 用户群:满足特定条件的用户的集合。实际上,我们可以将流程中的每根连线看成是一个用户群。这观点将在后面详细说明。
阶段
一个阶段的相关要素包括:
1. 接纳的用户群。一个阶段缺省接纳所有完成上一个阶段的用户,如果没有上一个阶段,那么流程中的上一节点必须是用户群配置节点;
2. 触发条件;
3. 用户状态检查;
4. 执行策略;
5. 产生的用户群。
下面是一个例子。业务场景:当用户上行短信"DG100"或流量达到套餐流量的 90% 时,为用户订购 100M 流量套餐。
说明:
- 图中有三个阶段(图中省去了用户群配置)。
- A 阶段根据执行的类型(发送短信),存在三个出口。
- B 阶段没有配置检查和执行,说明所有触发 B 阶段条件的用户都直接流转到下一阶段(C 阶段)。
- C 阶段没有配置触发,说明凡是流转到 C 阶段的用户都立即进行检查和执行。
- 其实 B 阶段和 C 阶段可以合并成一个阶段,这里为了能重用检查和执行部分,所以拆分成两个阶段。
用户群
用户群是指所有完成某个阶段的用户的集合。
用户群可以通过用户群筛选节点被拆分。
其实用户群筛选节点是不必要的,因为完全可以将筛选条件配到阶段里面。
不过这样看起来不像之前那样明了。
方案的结构设计
下面的结构中,属性带[]是一个 Array,带<>表示是一个 Map
方案:
阶段[]
用户筛选[]
用户群[]
起始用户群[]
阶段:
流入用户群[]
触发条件
检查条件
执行策略
用户筛选:
流入用户群
筛选条件
流出用户群
用户群:
所属方案
触发条件:
检查条件:
执行策略:
流出用户群<>
用户状态:
相关用户
所属方案
所属用户群
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。