一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于消息队列统一处理用户任务的方法与流程

2022-02-20 20:20:43 来源:中国专利 TAG:


1.本发明涉及用户任务统一处理方法技术领域,具体为基于消息队列统一处理用户任务的方法,主要解决在公司用户运营中涉及到的用户任务数量多,逻辑复杂多变,灵活性高导致的维护困难,上架新任务慢的问题。


背景技术:

2.近年来,随着公司发展,用户数量快速增长,为了让用户有一个良好的用户体验和参与度,往往会提供一些简单任务让用户去完成,从而获得相应的奖励,但是任务复杂多变,形式上包含一次性任务,每日任务,每周任务等,奖励方式也各不相同,有些是直接奖励固定积分,有些是按照用户付出的金额按倍数奖励,还有最重要的是用户运营策略往往会和任务体系挂钩,对任务的快速上线和修改提出了很高的要求,在这种情况下,如何设计出一套能满足各种形式,各种奖励条件和快速发布的任务系统至关重要。
3.以“用户评论”这个任务来举例,需要在“用户评论”这个业务完成后,再去判断任务列表是否存在该任务,再根据奖励方案发放奖励,但是这样的方式存在以下问题:(1)任务完成流程与业务耦合,扩展困难;(2)用户业务入口变多,任务处理需要重复开发,代码冗余;(3)如果任务需要下架或者修改规则,则要修改代码进行项目发布,无法实现快速开发;(4)如果任务有几十成百个,维护起来相当困难,投入成本高;(5)增加业务处理耗时,在高峰期容易将业务阻塞。
4.为此,我们提出基于消息队列统一处理用户任务的方法。


技术实现要素:

5.本发明的目的在于提供基于消息队列统一处理用户任务的方法,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:基于消息队列统一处理用户任务的方法,是一种可以通用处理所有用户任务的解决办法,结构包括事件收集器、消息队列、事件接收器、任务处理中心和奖励发送模块,且事件收集器输出连接消息队列,消息队列在进行异步处理后输出连接事件接收器,事件接收器输出连接任务处理中心,任务处理中心根据任务类型分类同时调用不同类型的处理器按照任务规则处理,然后直接输出连接奖励发送模块。
7.优选的,所述事件收集器里可以自定义各种事件类型,比如“签到”、“发日记”、“发评论”、“点赞”等用户动作,只需要对相应接口标记注解(注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰,注解对于它所修饰的代码并没有直接的影响),利用切面(一种编程思想,可将业务模块共同调用的处理逻辑进行封装,降低耦合,减少重复代码)技术即可统一收集任务相关的各种事件,对业务功能无侵入式代
码,扩展也极其方便。
8.优选的,所述消息队列可以看作是用户触发各种事件后,统一处理事件的中转站,主要功能是对事件消息提供可靠性保证,因为数据会存到硬盘,所以就算后续业务处理上出错,仍然可以进行补救,完成业务处理,实现方面可以采用当前各类mq中间件来完成。
9.优选的,所述事件接收器的作用是对事件处理的速度进行控制,因为用户的事件产生数量往往会非常多,高峰期单秒内可以产生几万甚至几十万的消息,所以通过事件接收器对事件处理进行削峰填谷,保护系统的运行稳定。
10.优选的,所述任务处理中心是整个系统的核心,通过总线控制器对各类事件消息进行分发处理,所以对于同一类事件只需要写一套代码即可完成复用,各类事件处理器代码隔离,通用处理代码又可以复用,在扩展性上,如果增加一种新的事件,只需要添加对应事件处理器即可,下架事件只需要将任务规则状态进行修改,即可完成下架动作,无需修改任何代码,代码实现上可通过模板,策略等设计模式来实现。
11.优选的,所述奖励发送是完成用户任务后,对奖励的处理模块,可以根据任务规则实现各类不同奖励进行计算和发放,与具体任务解耦,这样处理可实现快速开发,各种奖励计算方式隔离,解决代码冗余等问题。
12.优选的,可以在事件收集器前添加“评论”收集器,便于对用户评论数据进行收集,这样只需要关心“评论”是否完成,后续的处理由“事件收集器”触发,遵循了设计模式中“单一职责”、“开闭原则”、“迪米特法则”等要求,实现了“高内聚,低耦合”的软件设计要求。
13.优选的,该方法提供一种存储介质,且存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述的基于消息队列的任务处理方法中的步骤。
14.与现有技术相比,本发明的有益效果是:本发明中的消息队列起到了关键作用,在事件收集器获得目标任务后,并不是机械地处理一个任务然后将目标任务发送回消息队列,而是将目标任务中满足条件的任务全部作异步处理,且处理筛选完后才将目标任务发送至消息队列,以减少目标处理终端与消息队列的交互次数,提高目标任务的处理效率,同时事件接收器对事件处理进行削峰填谷,保护系统的运行稳定,解耦了业务与附加业务的处理,同时对系统的可靠性,稳定性提供了保障;本发明中的任务处理中心是整个系统的核心,通过总线控制器对各类事件消息进行分发处理,所以对于同一类事件只需要写一套代码即可完成复用,各类事件处理器代码隔离,通用处理代码又可以复用,在扩展性上,如果增加一种新的事件,只需要添加对应事件处理器即可,下架事件只需要将任务规则状态进行修改,即可完成下架动作,无需修改任何代码,代码实现上可通过模板,策略等设计模式来实现,能更好地复用代码,减少冗余,在维护上更加方便和快捷,也能更好支撑运营的要求,最直观地从发布一个新任务的开发时间来看,从原来的五天减少到两小时,效率提升二十倍以上,维护成本看,修改一个任务,原来的方案测试需要把所有场景都测一遍,由于现在后续流程统一处理,测试可以只挑选某个场景测试,节约了人力时间,提升了开发效率。
附图说明
15.图1为传统技术方案示意图;
图2为本发明工作流程示意图;图3为本发明实施例流程示意图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.请参阅图1、图2和图3,本发明提供一种技术方案:基于消息队列统一处理用户任务的方法,是一种可以通用处理所有用户任务的解决办法,结构包括事件收集器、消息队列、事件接收器、任务处理中心和奖励发送模块,且事件收集器输出连接消息队列,消息队列在进行异步处理后输出连接事件接收器,事件接收器输出连接任务处理中心,任务处理中心根据任务类型分类同时调用不同类型的处理器按照任务规则处理,然后直接输出连接奖励发送模块。
18.所述事件收集器里可以自定义各种事件类型,比如“签到”、“发日记”、“发评论”、“点赞”等用户动作,只需要对相应接口标记注解(注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰,注解对于它所修饰的代码并没有直接的影响),利用切面(一种编程思想,可将业务模块共同调用的处理逻辑进行封装,降低耦合,减少重复代码)技术即可统一收集任务相关的各种事件,对业务功能无侵入式代码,扩展也极其方便;所述消息队列可以看作是用户触发各种事件后,统一处理事件的中转站,主要功能是对事件消息提供可靠性保证,因为数据会存到硬盘,所以就算后续业务处理上出错,仍然可以进行补救,完成业务处理,实现方面可以采用当前各类mq中间件来完成;所述事件接收器的作用是对事件处理的速度进行控制,因为用户的事件产生数量往往会非常多,高峰期单秒内可以产生几万甚至几十万的消息,所以通过事件接收器对事件处理进行削峰填谷,保护系统的运行稳定;所述任务处理中心是整个系统的核心,通过总线控制器对各类事件消息进行分发处理,所以对于同一类事件只需要写一套代码即可完成复用,各类事件处理器代码隔离,通用处理代码又可以复用,在扩展性上,如果增加一种新的事件,只需要添加对应事件处理器即可,下架事件只需要将任务规则状态进行修改,即可完成下架动作,无需修改任何代码,代码实现上可通过模板,策略等设计模式来实现;所述奖励发送是完成用户任务后,对奖励的处理模块,可以根据任务规则实现各类不同奖励进行计算和发放,与具体任务解耦,这样处理可实现快速开发,各种奖励计算方式隔离,解决代码冗余等问题;可以在事件收集器前添加“评论”收集器,便于对用户评论数据进行收集,这样只需要关心“评论”是否完成,后续的处理由“事件收集器”触发,遵循了设计模式中“单一职责”、“开闭原则”、“迪米特法则”等要求,实现了“高内聚,低耦合”的软件设计要求;该方法提供一种存储介质,且存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述的基于消息队列的任务处理方法中的步骤;
本发明设计合理,该方法中的消息队列起到了关键作用,在事件收集器获得目标任务后,并不是机械地处理一个任务然后将目标任务发送回消息队列,而是将目标任务中满足条件的任务全部作异步处理,且处理筛选完后才将目标任务发送至消息队列,以减少目标处理终端与消息队列的交互次数,提高目标任务的处理效率,同时事件接收器对事件处理进行削峰填谷,保护系统的运行稳定,解耦了业务与附加业务的处理,同时对系统的可靠性,稳定性提供了保障,任务处理中心是整个系统的核心,通过总线控制器对各类事件消息进行分发处理,所以对于同一类事件只需要写一套代码即可完成复用,各类事件处理器代码隔离,通用处理代码又可以复用,在扩展性上,如果增加一种新的事件,只需要添加对应事件处理器即可,下架事件只需要将任务规则状态进行修改,即可完成下架动作,无需修改任何代码,代码实现上可通过模板,策略等设计模式来实现,能更好地复用代码,减少冗余,在维护上更加方便和快捷,也能更好支撑运营的要求,最直观地从发布一个新任务的开发时间来看,从原来的五天减少到两小时,效率提升二十倍以上,维护成本看,修改一个任务,原来的方案测试需要把所有场景都测一遍,由于现在后续流程统一处理,测试可以只挑选某个场景测试,节约了人力时间,提升了开发效率。
19.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献