前言:当前外卖、叫车、共享单车等市场比较火爆;各个公司为了抢占市场,不惜投入大量资金来补贴拉取用户,从而占领市场。比如美团,滴滴,摩拜等都会通过各种各样的活动奖励来拉新以及留存用户;常用的手段就是发券,然后短信通知用户,如下图:1-1所示。那么这种任务系统的架构设计是什么样子呢,下面就做个大概介绍。

图1-1 短信通知发券

一、任务系统结构设计介绍

图2-1 任务系统设计架构

任务系统架构大的可分为四模块,如图2-1所示。第一个模块是统一对外提供服务的接口,简称“应用层”;第二个模块是任务预

处理模块,包括实时和准实时处理模块;第三个模块是数据库部分;第四个模块是封装下游的各个业务模块,简称“下游业务模块”。

下面我们将逐一介绍各个模块。

应用层。应用层是我们这个系统抽象出来之后,暴露对外提供的通用且唯一的接口,这里就体现了营销类任务系统设计原则中的

通用性。目前支持券、积分、现金、短信以及push等形式的任务,业务方不需要关注这些任务是怎么实现的,只需要按照我们提供的

协议调用接口就行。

预处理模块。我们提供了两种可接入方式,一种是实时接口,另一种是准实时接口。实时接口会在请求结束返回当前执行结果,

这种接口适应于对实时性要求非常高的任务,比方现金奖。另一种是准实时接口,只所以是准实时是因为执行完请求不会立即返回

结果,给接入方的感觉就是成功了。准实时任务我们会先入MQ队列,然后保存到数据库中,最后再通过后台异步定时脚本从数据库

中把任务取出来执行,这么做有2个好处,第一是通过MQ削峰,既然是抽象通用的任务系统,那必然会在应用层对接很多业务方,

流量自然也非常大(目前我们系统QPS可以保证打到10000左右),为了不至于因为上游的大促活动导致流量暴增从而对任务系统造

成影响,我们借助于MQ来抵挡“洪峰”。可以根据系统的QPS来设置MQ的消费速度,从而保证任务系统的稳定性。

数据库。数据库是用来保存应用层下来的任务数据,一个是为了case回放时用到,另一个是对于准实时的任务,这里保存的数

据供后续实际处理用。

下游业务模块。下游业务模块衔接任务系统和下游真正的业务方,封装下游各个业务,如发券系统,短信系统等等,然后在应

用层里新增券和短信等协议类型,应用方按照协议接入即可,简单统一。理论上这个模块可以横向无限扩展,只要有新的下游业务,

我们都可以封装然后提供给应用层。

二、任务系统应用层协议定义
协议比较简单,如图2-2所示。type表示需要执行的任务类型,每种类型是一个数组,所需要的参数也不同(依赖下游模块),应用层用户根据任务系统给定的协议接入,支持执行多个任务,比方发券+短信,任务系统会按照顺序有序的执行,先执行数组中第一个数组任务,执行成功再执行第二个,依次类推,如果有一个执行失败,后面的将不会再执行。而且,我们还有重试机制,比方其中一个任务执行失败,我们会按照一定方法重试,直至达到某一个阈值之后将不再重试。
图2-2 任务系统类型协议
 

发券、短信等任务系统的设计和实现相关推荐

  1. 电力公司SMS短信群发平台的设计与实现

    潍坊科技学院 本科毕业设计(论文) 题 目 电力公司SMS短信群发平台的设计与实现 院(系) 专 业 科学与技术 学 号 学生姓名 指导教师 刘效伟 起讫日期 2015.1.11-2015.6.6 设 ...

  2. 基于混合密码体制的端到端短信通讯系统(Java实现+AES+RSA+json)

    基于混合密码体制的端到端短信通讯系统(Java实现+AES+RSA+json) 随着移动通信技术及相关领域服务的快速发展,短信内容常常涉及用户隐私和信息安全.用户使用短信传输一些重要的私人信息,如:手 ...

  3. 嵌入式毕设分享 GSM手机短信收发系统(源码+论文)

    文章目录 1 简介 1 硬件设计 1.1 TC35i模块 1.2 单片机硬件链接 2 软件设计 2.1 软件流程图 3 关键代码 4 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个 ...

  4. stm32毕设分享 GSM手机短信收发系统(源码+论文)

    文章目录 1 简介 1 硬件设计 1.1 TC35i模块 1.2 单片机硬件链接 2 软件设计 2.1 软件流程图 3 关键代码 4 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个 ...

  5. STM32单片机蓝牙APP GSM短信安全监控系统湿度烟雾入侵报警系统

    实践制作DIY- GC0147---蓝牙APP GSM短信安全监控系统 基于STM32单片机设计---蓝牙APP GSM短信安全监控系统 二.功能介绍: 硬件组成:STM32F103C系列最小系统板 ...

  6. Android软件开发之发送短信与系统短信库解析(三十)

    Android软件开发之发送短信与系统短信库解析 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/arc ...

  7. Android内容提供器的应用,基于Android的智能终端应用防护系统短信过滤子模块的设计与实现...

    摘要: 智能终端随着3G业务的推广而普及,在各种平台的竞争中,Android逐渐占据了主流,谷歌学习苹果的应用商店模式,推出了自己的应用商城.面对应用市场的繁荣,用户的终端安装了形形色色的应用,许多安 ...

  8. 单片机控制GSM模块实现短信收发的软件设计

    摘要:借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理.详细介绍单片机控制GSM模块工作的软件实现过程,对怎样用单片机控制GSM模块收发短信进行探讨,也对程序设计的主体思想作 ...

  9. 企业短信应用平台的设计

    手机短信作为一种非常重要的沟通方式,正在被越来越多的企业重视.本文介绍的企业短信应用平台简单易行,可以为企业提供方便灵活的.基于短信的双向交流渠道. 多年来,及时准确地采集前端销售数据.快速地将各种消 ...

最新文章

  1. php中常见的错误类型有,JavaScript中常见的错误类型有哪些?(详细介绍)
  2. 分享丨李飞飞、吴恩达、Bengio等人的顶级深度学习课程
  3. jsp页面中使用超链接标签a中的属性href和onclick同时触发怎么执行
  4. WebAPi接口安全之公钥私钥加密
  5. 目标检测带标签样本增广工具
  6. 20145207 《Java程序设计》第4周学习总结
  7. java获得电脑性能_Java:使用SingletonStream获得性能
  8. 感量越大抑制频率约低_脉冲信号是什么?它与频率,占空比,正、负逻辑间是什么关系?...
  9. 如何使用 indent 美化你的代码
  10. sql语句为什么大写居多_懂EXCEL就会SQL,从此查数不求人
  11. 兰州大学c语言课程作业答案,2016兰州大学C语言程序设计课程作业1附答案.doc
  12. 18. Element firstChild 属性
  13. tensorRT程序设计框架_4
  14. 【图卷积网络】Graph Convolutional Network
  15. opencv检测动态物体
  16. 英雄联盟一直连接服务器win10,手把手修复win10系统英雄联盟连接不上服务器的解决方法...
  17. 三菱FX5U常见问题解析
  18. WordPress 安全漏洞
  19. Windows桌面端录屏采集实现
  20. 游戏程序必备spyder程序--可进可退的多级菜单系统

热门文章

  1. mt19937是什么鬼?
  2. Qt_多视频播放器思想
  3. 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
  4. 基于Android的O2O点餐系统
  5. Word论文必备的高阶技巧
  6. 诺贝尔奖得主希勒:应对AI威胁要为民众提供生活保险 | 观点
  7. python绘制热力地图_Python学习笔记:Python做热力地图
  8. 大数据开发面试题必备20题
  9. c语言中标准输入设备的文件指针名,unit2大学英语答案
  10. JAVA-希尔排序-Knuth序列以及对数器