订单延迟支付告警程序

在本案例中,我们将使用Flink process function原生的状态编程,实现一个电商订单延迟支付告警程序。

主要内容包括:

  • 需求描述与分析
  • 数据格式描述
  • Scala代码参考实现
  • Java代码参考实现
  • 程序执行结果

需求描述与分析

在电商平台中,有效的订单是用户真正完成支付动作的订单。用户下单的行为可以表明用户对商品的需求,但在现实中,并不是每次下单都会被用户立刻支付。当拖延一段时间后,用户支付的意愿会降低。

所以为了让用户更有紧迫感从而提高支付转化率,同时也为了防范订单支付环节的安全风险,电商网站往往会对订单状态进行监控,设置一个失效时间(比如 15 分钟),如果下单后一段时间仍未支付,订单就会被取消。

此时需要给用户发送一个信息提醒用户,提高支付转换率!

上述需求问题可以简化成:在pay事件超时未发生的情况下,输出超时报警信息。

思路如下:

  • 在订单的create事件到来后注册定时器,15分钟后触发;
  • 用一个布尔类型的 ValueState来作为标识位,表明pay事件是否发生过;
  • 如果pay事件已经发生,状态被置为true,那么就不再需要做什么操作;
  • 而如果pay事件一直没来,状态一直为false,到定时器触发时,就应该输出超时报警信息。

示例数据

我们提供的样例数据,位于PBLP平台的~/data/flink/目录下。< ......

......

抱歉,只有登录会员才可浏览!会员登录


《PySpark原理深入与编程实战》