概述

本文描述事件触发的模型和运作机制。

总体概览和名词

事件模型的总体概览如下图:
209249f9-6205-40f0-9adf-6c1e15daaf1f.png

名词解释:

  • 方案:为了达到特定的业务目的而制定出来的所有方法和策略的统称。一个方案包括:名称、有效期、用户群和流程。
  • 流程:对方案的执行过程的一种抽象概括。

    1. 流程分为多个阶段;
    2. 流程从一个用户群开始,至某个阶段结束。
    3. 流程当中可以存在分支,上图的例子中,存在 4 条可能的执行路线,分别是:1-2-3,1-2-4,1-2-5,1-2-6。
  • 阶段:对在特定条件下执行特定操作的归纳。后面将详细介绍。
  • 用户群:满足特定条件的用户的集合。实际上,我们可以将流程中的每根连线看成是一个用户群。这观点将在后面详细说明。

阶段

一个阶段的相关要素包括:
1. 接纳的用户群。一个阶段缺省接纳所有完成上一个阶段的用户,如果没有上一个阶段,那么流程中的上一节点必须是用户群配置节点;
2. 触发条件;
3. 用户状态检查;
4. 执行策略;
5. 产生的用户群。

下面是一个例子。业务场景:当用户上行短信"DG100"或流量达到套餐流量的 90% 时,为用户订购 100M 流量套餐。
图片描述

说明:

  1. 图中有三个阶段(图中省去了用户群配置)。
  2. A 阶段根据执行的类型(发送短信),存在三个出口。
  3. B 阶段没有配置检查和执行,说明所有触发 B 阶段条件的用户都直接流转到下一阶段(C 阶段)。
  4. C 阶段没有配置触发,说明凡是流转到 C 阶段的用户都立即进行检查和执行。
  5. 其实 B 阶段和 C 阶段可以合并成一个阶段,这里为了能重用检查和执行部分,所以拆分成两个阶段。

用户群

用户群是指所有完成某个阶段的用户的集合。
图片描述

用户群可以通过用户群筛选节点被拆分。
图片描述

其实用户群筛选节点是不必要的,因为完全可以将筛选条件配到阶段里面。
图片描述

不过这样看起来不像之前那样明了。

方案的结构设计

图片描述

下面的结构中,属性带[]是一个 Array,带<>表示是一个 Map

方案:

阶段[]
用户筛选[]
用户群[]
起始用户群[]

阶段:

流入用户群[]
触发条件
检查条件
执行策略

用户筛选:

流入用户群
筛选条件
流出用户群

用户群:

所属方案

触发条件:

检查条件:

执行策略:

流出用户群<>

用户状态:

相关用户
所属方案
所属用户群    

捏造的信仰
2.8k 声望272 粉丝

Java 开发人员