searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

SD-WAN订单处理模块方案设计

2023-08-30 01:14:35
21
0

背景

rabbitMQ作为一个功能强大的开源消息队列中间件,它具有一系列的优点和一些限制。优点在于他的持久化消息的机制,以及灵活的消息路由机制等。由于之前订单模块处理使用的rabbitMQ,我们发现会投入很多人力运维,包括配置交换机、队列,绑定路由等。所以我们考虑在基于现有异步架构的情况下,使用数据库+协程处理方式作为新订单模块处理方法。减少多余资源的投入,做到功能精巧和可定制化业务扩展。

方案设计思路

首先订单消息通过api接口方式传递给后端处理,可以提高订单处理的效率,将订单保存在数据库中,也便于后续对账和运维维护。

任务队列分成三类。1.任务处理队列 2.获取任务处理结果队列 3. 更新资源时间队列。

1) 任务处理队列。

开发人员可以根据每个订单资源的不同特性,开发定制不同的任务处理队列来处理订单消息。首先在配置文件中要定制一个任务处理队列task_interval,需要配置好队列名称,处理时间间隔,处理超时时间,处理资源的类型和资源的处理方式。

然后我们需要在代码中定义不同类型和不同资源处理方式的类方法。

  1. 根据任务处理时间间隔,定时去数据库拉取待处理订单,并标记订单在处理中;
  2. 开发人员可在类方法中根据资源特性定义不同的处理逻辑。并将整合好的订单参数下发到底层做业务逻辑开通和变更等操作。
  3. 如果处理失败,修改订单状态为待处理,并标记处理次数,以便重复执行订单任务,当重复处理次数超过配置,订单标记为处理失败,并触发邮箱和短信告警通知,以便运维及时介入。
  4. 如果处理成功,修改订单状态为已成功。

2) 获取任务处理结果的队列。

  1. 通过拉取订单状态为已成功的数据来回单,通知订单中心已完成订单。
  2. 通过拉取处理失败的资源,触发邮箱和短信告警,通知运维人员介入处理。

3) 更新资源时间队列。

在回单成功之后,会再次通过api接口的方式将资源的时间信息同步到数据库中,并修改订单标记is_handle为1(默认是0)。

我们可以根据拉取订单状态为已成功并且is_handle为1的资源执行时间与订单所创建的实例进行绑定操作。如果执行成功修改is_handle为2,即完成订单周期流程。如果执行失败,标记订单状态为更新时间失败,并触发邮箱和短信告警,通知运维人员介入处理。

SD-WAN订单特点

由于SD-WAN的产品需要线下装维,所以客户从下单到使用有有一定的时间。然而这个时间并不能 算到客户使用时间里,从客户体验上不人性化。

因此我们在收到订单之后,需要先派发装维工单,由装维人员进行装维。装维完成之后,才可以触发订单回单操作。所以在回单操作之前,我们需要先拦截订单,将订单状态改为已分发。

装维人员在装维完成之后,有以下三种方式触发回单操作。

  1. 立即回单,即装维人员触发立即回单操作,订单开始计费。
  2. 默认设备激活之后5天回单。装维人员不需点击操作立即回单,由定时任务根据激活时间判断回单时间。
  3. 按指定日期回单。需要装维人员和客户商量具体起租时间,然后配置指定日期回单,由定时任务根据指定回单日期来回单。

以上三种方式可以由装维人员根据客户特点进行选择。

0条评论
0 / 1000
郑****腾
2文章数
0粉丝数
郑****腾
2 文章 | 0 粉丝
郑****腾
2文章数
0粉丝数
郑****腾
2 文章 | 0 粉丝
原创

SD-WAN订单处理模块方案设计

2023-08-30 01:14:35
21
0

背景

rabbitMQ作为一个功能强大的开源消息队列中间件,它具有一系列的优点和一些限制。优点在于他的持久化消息的机制,以及灵活的消息路由机制等。由于之前订单模块处理使用的rabbitMQ,我们发现会投入很多人力运维,包括配置交换机、队列,绑定路由等。所以我们考虑在基于现有异步架构的情况下,使用数据库+协程处理方式作为新订单模块处理方法。减少多余资源的投入,做到功能精巧和可定制化业务扩展。

方案设计思路

首先订单消息通过api接口方式传递给后端处理,可以提高订单处理的效率,将订单保存在数据库中,也便于后续对账和运维维护。

任务队列分成三类。1.任务处理队列 2.获取任务处理结果队列 3. 更新资源时间队列。

1) 任务处理队列。

开发人员可以根据每个订单资源的不同特性,开发定制不同的任务处理队列来处理订单消息。首先在配置文件中要定制一个任务处理队列task_interval,需要配置好队列名称,处理时间间隔,处理超时时间,处理资源的类型和资源的处理方式。

然后我们需要在代码中定义不同类型和不同资源处理方式的类方法。

  1. 根据任务处理时间间隔,定时去数据库拉取待处理订单,并标记订单在处理中;
  2. 开发人员可在类方法中根据资源特性定义不同的处理逻辑。并将整合好的订单参数下发到底层做业务逻辑开通和变更等操作。
  3. 如果处理失败,修改订单状态为待处理,并标记处理次数,以便重复执行订单任务,当重复处理次数超过配置,订单标记为处理失败,并触发邮箱和短信告警通知,以便运维及时介入。
  4. 如果处理成功,修改订单状态为已成功。

2) 获取任务处理结果的队列。

  1. 通过拉取订单状态为已成功的数据来回单,通知订单中心已完成订单。
  2. 通过拉取处理失败的资源,触发邮箱和短信告警,通知运维人员介入处理。

3) 更新资源时间队列。

在回单成功之后,会再次通过api接口的方式将资源的时间信息同步到数据库中,并修改订单标记is_handle为1(默认是0)。

我们可以根据拉取订单状态为已成功并且is_handle为1的资源执行时间与订单所创建的实例进行绑定操作。如果执行成功修改is_handle为2,即完成订单周期流程。如果执行失败,标记订单状态为更新时间失败,并触发邮箱和短信告警,通知运维人员介入处理。

SD-WAN订单特点

由于SD-WAN的产品需要线下装维,所以客户从下单到使用有有一定的时间。然而这个时间并不能 算到客户使用时间里,从客户体验上不人性化。

因此我们在收到订单之后,需要先派发装维工单,由装维人员进行装维。装维完成之后,才可以触发订单回单操作。所以在回单操作之前,我们需要先拦截订单,将订单状态改为已分发。

装维人员在装维完成之后,有以下三种方式触发回单操作。

  1. 立即回单,即装维人员触发立即回单操作,订单开始计费。
  2. 默认设备激活之后5天回单。装维人员不需点击操作立即回单,由定时任务根据激活时间判断回单时间。
  3. 按指定日期回单。需要装维人员和客户商量具体起租时间,然后配置指定日期回单,由定时任务根据指定回单日期来回单。

以上三种方式可以由装维人员根据客户特点进行选择。

文章来自个人专栏
云平台开发
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0