CN115729780A - 一种打开行为数据采集方法及装置、存储介质及电子设备 - Google Patents
一种打开行为数据采集方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115729780A CN115729780A CN202211479915.6A CN202211479915A CN115729780A CN 115729780 A CN115729780 A CN 115729780A CN 202211479915 A CN202211479915 A CN 202211479915A CN 115729780 A CN115729780 A CN 115729780A
- Authority
- CN
- China
- Prior art keywords
- service
- message
- message queue
- behavior data
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种打开行为数据采集方法及装置、存储介质及电子设备,服务端接收前端响应用户的打开请求所发送的对目标业务接口的调用请求,并执行对应的业务逻辑,在业务逻辑执行完成后,从执行业务逻辑得到的结果中采集每个用户行为字段的字段数据,异步执行基于各个字段数据,在打开行为数据表中对用户进行打开行为数据记录。由于是由服务端采集字段数据,并且字段数据在执行业务逻辑的过程中已经完成业务验证,无需再进行业务验证,提高了服务端的性能和打开行为数据记录效率,同时,只采集预设用户行为字段的字段数据,若需开发新的业务场景,只需为业务场景配置预设用户行为字段对应的字段数据即可,无需对前端进行改造开发,提高开发效率。
Description
技术领域
本申请涉及协同办公技术领域,尤其涉及一种打开行为数据采集方法及装置、存储介质及电子设备。
背景技术
在协同文档系统中,需要对用户打开协同文档系统中任一业务场景(例如文档,目录和团队)的打开行为数据进行采集,以供运营人员分析和制定运营策略,产品设计师跟踪并完善系统功能,以及用户通过最近打开的记录快速进入之前访问的业务场景。
目前,打开行为数据采集为前端调用业务接口,以及异步采集打开行为数据并调用与待打开的业务场景对应的服务端接口,服务端对该服务端接口的调用进行大量的验证,并在验证通过后,将打开行为数据记录于待打开的业务场景对应的打开行为数表。由于需要进行大量的验证,导致打开行为数据记录效率低,并且不同业务产场景对应的不同的服务端接口,不同服务端接口的设置的入参不同,由此导致在开发新的业务场景时,需要开发新的服务端接口和打开行为数据表,并对前端进行改造开发,导致开发效率低,增加开发成本。
发明内容
本申请提供了一种打开行为数据采集方法及装置、存储介质及电子设备,目的在于实现解决现有技术中存在的打开行为数据记录效率低,以及开发新的业务场景,需要开发新的服务端接口和打开行为数据表,并对前端进行改造开发,导致开发效率低,增加开发成本的问题。
为了实现上述目的,本申请提供了以下技术方案:
一种打开行为数据采集方法,应用服务端,所述方法包括:
接收前端响应用户的打开请求所发送的对目标业务接口的调用请求;所述打开请求用于请求打开目标业务场景,所述目标业务场景为协同文档系统中的任一业务场景,所述目标业务接口为所述目标业务场景对应的业务接口;
执行与所述目标业务接口对应的业务逻辑;
在所述业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行所述业务逻辑得到的结果中采集每个用户行为字段的字段数据;
异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录。
上述的方法,可选的,所述异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录之后,还包括:
向所述前端反馈执行所述业务逻辑得到的结果。
上述的方法,可选的,所述服务端包括协同服务、打开行为采集服务和消息队列服务,所述异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录,包括:
所述协同服务异步执行通过预设的打开行为采集接口,将各个字段数据传输至所述打开行为采集服务;
所述打开行为采集服务在所述打开行为采集接口传入的各个字段数据不为空的情况下,基于各个字段数据,生成消息队列消息,并向所述消息队列服务发送所述消息队列消息,在所述消息队列服务成功接收到所述消息队列消息的情况下,接收所述消息队列服务反馈的所述消息队列消息,并判断所述消息队列消息是否被重复发送,若未被重复发送,则判断预设的打开行为数据表中是否存在与各个字段数据对应的打开行为数据,若存在,则将所述打开行为数据中的修改时间变更为当前系统时间,若不存在,则基于各个字段数据和当前系统时间,在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据。
上述的方法,可选的,所述在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据之后,还包括:
所述打开行为采集服务获取执行结果,所述执行结果为执行将所述打开行为数据中的修改时间变更为当前系统时间或执行在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据的结果;
若所述执行结果表征未成功变更所述打开行为数据表中的修改时间,或未成功在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据,则返回执行所述向所述消息队列服务发送所述消息队列消息的步骤。
上述的方法,可选的,所述向所述消息队列服务发送所述消息队列消息,包括:
向所述消息队列服务发送所述消息队列消息;
判断所述消息队列消息是否被成功发送至所述消息队列服务;
若未被成功发送至所述消息队列服务,则重新向所述消息队列服务发送所述消息队列消息,直至向所述消息队列服务发送所述消息队列消息的次数不小于预设阈值;
将所述消息队列消息写入至补发表中,由定时任务定时向消息队列服务发送所述补发表中的所述消息队列消息,直至所述消息队列消息被成功发送至所述消息队列服务。
上述的方法,可选的,所述判断所述消息对队列消息是否被重复发送,包括:
对所述消息队列消息中的各个字段数据进行拼接,得到目标拼接结果;
判断缓存包括的各个拼接结果中是否存在与所述目标拼接结果一致的拼接结果,若存在,则确定出所述消息队列消息被重复发送;
若不存在,则将所述目标拼接结果存储至所述缓存中,并确定出所述消息队列消息未被重复发送。
上述的方法,可选的,所述将所述拼接结果存储至所述缓存中之后,还包括:
经过预设时长后,删除所述缓存中的所述目标拼接结果。
一种打开行为数据采集装置,应用服务端,所述装置包括:
接收单元,用于接收前端响应用户的打开请求所发送的对目标业务接口的调用请求;所述打开请求用于请求打开目标业务场景,所述目标业务场景为协同文档系统中的任一业务场景,所述目标业务接口为所述目标业务场景对应的业务接口;
执行单元,用于执行与所述目标业务接口对应的业务逻辑;
采集单元,用于在所述业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行所述业务逻辑得到的结果中采集每个用户行为字段的字段数据;
记录单元,用于异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录。
一种存储介质,所述存储介质存储有指令集,其中,所述指令集被处理器执行时实现如上述的打开行为数据采集方法。
一种电子设备,包括:
存储器,用于存储至少一组指令集;
处理器,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上述的打开行为数据采集方法。
与现有技术相比,本申请包括以下优点:
本申请提供了一种打开行为数据采集方法及装置、存储介质及电子设备,服务端接收前端响应用户的打开请求所发送的对目标业务接口的调用请求,并执行与目标业务接口对应的业务逻辑,在业务逻辑执行完成的情况下,从执行业务逻辑得到的结果中采集每个用户行为字段的字段数据,并异步执行基于各个字段数据,在打开行为数据表中对用户进行打开行为数据记录。由于是由服务端采集字段数据,并且字段数据在执行业务逻辑的过程中已经完成业务验证,无需再进行业务验证,提高了服务端的性能和打开行为数据记录效率,同时,由于只采集预设用户行为字段的字段数据,若需开发新的业务场景,只需为业务场景配置预设用户行为字段对应的字段数据即可,无需对前端进行改造开发,提高开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种打开行为数据采集方法的方法流程图;
图2为本申请提供的一种业务场景的示例图;
图3为本申请提供的一种打开行为数据采集方法的又一方法流程图;
图4为本申请提供的一种打开行为数据采集方法的又一方法流程图;
图5为本申请提供的一种打开行为数据采集方法的又一方法流程图;
图6为本申请提供的一种打开行为数据的应用场景的示例图;
图7为本申请提供的一种打开行为数据采集方法的示例图;
图8为本申请提供的一种打开行为数据采集装置的结构示意图;
图9为本申请提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请实施例提供了一种打开行为数据采集方法,应用于服务端,该方法的方法流程图如图1所示,具体包括:
S101、接收前端响应用户的打开请求所发送的对目标业务接口的调用请求。
本实施例中,前端响应用户的打开请求,向服务端发送对目标业务接口的调用请求。
本实施例中,服务端接收前端响应用户的打开请求所发送的对目标业务接口的调用请求,其中,打开请求用于请求打开目标业务场景,目标业务场景为协同文档系统中的任一业务场景,目标业务接口为目标业务场景对应的业务接口。
示例性的,参数图2,业务场景包括但不限于协同文档类(即文档)、目标和团队。协同文档类包括(include)协同文档、协同表格、协同表单和文件。
其中,文档对应的业务接口为文档信息接口,目标对应的业务接口为目录信息接口,团队对应的业务接口为团队信息接口。
可选的,用户的打开请求为可通过触发前端中的相关功能键生成。
需要说明的是,前端发送的对目标业务接口的调用请求中包括待执行业务逻辑的相关数据,相关数据包括但不限于用户信息和目标业务场景信息。
S102、执行与目标业务接口对应的业务逻辑。
本实施例中,服务端执行与目标业务接口对应的业务逻辑,具体的,基于调用请求中的相关数据。
需要说明的是,目标业务接口对应的业务逻辑为现有的业务逻辑。
S103、在业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行业务逻辑得到的结果中采集每个用户行为字段的字段数据。
本实施例中,预设多个用户行为字段,示例性的,多个用户行为字段包括用户Id、租户Id、业务场景类型和业务场景Id。其中,租户为用户所属的用户类型。
本实施例中,在业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行业务逻辑得到的结果中采集每个用户行为字段的字段数据,也就是采集用户Id对应的字段数据,采集租户Id对应的字段数据,采集业务场景类型对应的字段数据,以及采集业务场景Id对应的字段数据。
S104、异步执行基于各个字段数据,在预设的打开行为数据表中对用户进行打开行为数据记录。
本实施例中,异步执行基于各个字段数据,在预设的打开行为数据表中对用户进行打开行为数据记录。
需要说明的是,本申请针对各个业务场景只预设一个打开行为数据表,示例性的,打开行为数据表中的字段包括租户Id、用户Id、业务场景类型、业务场景Id、创建人、创建时间和修改时间。其中,创建人与用户Id相同,创建时间为首次创建该用户打开该业务场景的打开行为数据的时间,修改时间为用户最近一次打开该业务场景的时间。
可选的,打开行为数据表存储至非结构化数据库中。由于打开行为数据的量级较大,系统使用一段时间后,数据量在亿级别及以上,采用非结构化库属于大数据储存,从而可以利用大数据所具备的快速查询优势,提高查找效率,并且采用单表存储便于统计查询,在非结构化数据库中,单表采用的是分布式分片存储,可以的解决储存性能的问题。
本申请实施例提供的方法中,通过异步执行基于各个字段数据,在预设的打开行为数据表中对用户进行打开行为数据记录,从而避免影响现有的业务功能的实现。
本申请实施例提供的方法中,服务端包括协同服务、打开行为采集服务和消息队列服务(即MQ服务)。参阅图3,异步执行基于各个字段数据,在预设的打开行为数据表中对用户进行打开行为数据记录的过程,具体包括以下步骤:
S301、协同服务异步执行通过预设的打开行为采集接口,将各个字段数据传输至打开行为采集服务。
本实施例中,预设打开行为采集接口。
本实施例中,协同服务异步执行通过预设的打开行为采集接口,将各个字段数据传输至打开行为采集服务,也就是说,协同服务将各个字段数据作为打开行为采集接口调用的入参数据,并调用打开行为采集接口。
S302、打开行为采集服务在打开行为采集接口传入的各个字段数据不为空的情况下,基于各个字段数据,生成消息队列消息,并向消息队列服务发送消息队列消息。
本实施例中,打开行为采集服务在接收到打开行为采集接口传入的各个字段数据后,校验打开行为采集接口传入的各个字段数据是否为空,也就是校验打开行为采集接口的入参数据是否为空。
本实施例中,打开行为采集服务在打开行为采集接口传入的各个字段数据不为空的情况下,基于各个字段数据,生成消息队列消息,即生成MQ消息,并向消息队列服务发送消息队列消息。
参阅图4,向消息队列服务发送消息队列消息的过程,具体包括以下步骤:
S401、向消息队列服务发送消息队列消息。
本实施例中,向消息队列服务发送消息队列消息。
S402、判断消息队列消息是否被成功发送至消息队列服务,若是,结束当前流程,若否,执行S403。
本实施例中,在向消息队列服务发送消息队列消息后,判断消息队列消息是否被成功发送至消息队列服务,也就是消息队列服务是否成功接收该消息队列消息,具体的,判断预设的时长内是否接收到消息队列服务反馈的表征成功接收该消息队列的消息。
本实施例中,若消息队列消息被成功发送至消息队列服务,则打开行为采集服务结束当前流程,若消息队列消息未被成功发送至消息队列服务,则执行步骤S403。
S403、判断向消息队列服务发送该消息队列消息的次数是否小于预设阈值,若是,返回执行S401,若否,执行S404。
本实施例中,若消息队列消息未被成功发送至消息队列服务,则进一步判断向消息队列服务发送该消息队列消息的次数是否小于预设阈值。优选的,预设阈值为3。
其中,向消息队列服务发送该消息队列消息的次数可以通过计数器实现,具体的,若消息队列未被成功发送至消息队列服务,则对预设的计数器进行计数加一处理,计数器的初始计数为零,通过在确定消息队列消息未被成功发送至消息队列服务的情况下,对计数器的进行计数加一处理,从而实现统计向消息队列服务发送该消息队列消息的次数。
本实施例中,若向消息队列服务发送该消息队列消息的次数小于预设阈值,则返回执行步骤S401,再次向消息队列服务发送该消息队列消息,若向消息队列服务发送该消息队列消息的次数不小于预设阈值,则执行步骤S404。
S404、将消息队列消息写入至补发表中。
本实施例中,若向消息队列服务发送该消息队列消息的次数不小于预设阈值,则将消息队列消息写入至补发表中。可选的,补发表可以存储在结构化数据库中。
S405、由定时任务定时向消息队列服务发送补发表中的该消息队列消息。
本实施例中,写入至补发表中的消息队列消息由定时任务定时向消息队列服务发送补发表中的该消息队列消息,也就是说,定时任务会定时向消息队列服务发送补发表中的该消息队列消息。
S406、判断消息队列消息是否成功被发送至消息队列服务,若否,返回执行S405,若是,结束当前流程。
本实施例中,判断消息队列消息是否被成功发送至消息队列服务,若是,则结束当前流程,并将该消息队列消息从补发表中删除,若否,则返回执行步骤S405。
本申请实施例提供的方法,多次消息队列消息的重新发送,以及在向消息队列服务发送该消息队列消息的次数不小于预设阈值的情况下,将该消息队列消息写入至补发表中进行补发,以保障消息队列消息被成功发送消息队列服务。
S303、打开行为采集服务在消息队列服务成功接收到消息队列消息的情况下,接收消息队列服务反馈的消息队列消息。
本实施例中,消息队列服务在成功接收到消息队列消息的情况下,确定订阅该消息队列消息的服务,并将该消息队列消息发送至订阅该消息队列消息的服务。
本实施例中,打开行为采集服务预先订阅该消息队列消息。
本实施例中,打开行为采集服务接收消息队列服务反馈的消息队列消息。
S304、打开行为采集服务判断消息队列消息是否被重复发送,若是,执行S305,若否,执行S306。
本实施例中,打开行为采集服务在接收到消息队列消息后,判断消息队列消息是否被重复发送,也就是判断消息队列是否被消息队列服务重复发送。
参阅图5,判断消息队列消息是否被重复发送的过程,具体包括以下步骤:
S501、对消息队列消息中的各个字段数据进行拼接,得到目标拼接结果。
本实施例中,对消息队列消息中的各个字段数据进行拼接,得到目标拼接结果,目标拼接结果为字符串。
S502、判断缓存包括的各个拼接结果中是否存在与目标拼接结果一致的拼接结果,若是,执行S503,若否,执行S504。
本实施例中,基于目标拼接结果,判断缓存包括的各个拼接结果中是否存在目标拼接结果一致的拼接结果,具体的,通过将目标拼接结果与缓存包括的各个拼接结果进行比对,以判断缓存包括的各个拼接结果中是否存在目标拼接结果一致的拼接结果。
需要说明的是,缓存包括的各个拼接结果的存储时长小于预设时长。优选的,预设时长为1秒。
S503、确定出消息队列消息被重复发送。
本实施例中,若缓存包括的各个拼接结果中存在与目标拼接结果一致的拼接结果,则确定出消息队列消息被重复发送。
S504、将目标拼接结果存储至缓存中,并确定出消息队列消息未被重复发送。
本实施例中,若缓存包括的各个拼接结果中不存在与目标拼接结果一致的拼接结果,则将目标拼接结果存储至缓存中,并确定出消息队列消息未被重复发送。
可选的,将目标拼接结果存储至缓存中之后,还可以包括以下步骤:
经过预设时长后,删除缓存中的目标拼接结果。
本实施例中,将目标拼接结果存储至缓存中之后,经过预设时长后,删除缓存中的目标拼接结果,以确保缓存中存储的拼接结果的存储时长小于预设时长。
优选的,预设时长为1秒。
S305、消息队列服务丢弃该消息队列消息。
本实施例中,若消息队列消息被重复发送,则打开行为采集服务将消息队列消息丢弃。
S306、打开行为采集服务判断预设的打开行为数据表中是否存在与各个字段数据对应的打开行为数据,若是,执行S307,若否,执行S308。
本实施例中,若消息队列消息未被重复发送,则打开行为采集服务进一步判断预设的打开行为数据表中是否存在与各个字段数据对应的打开行为数据。
S307、打开行为采集服务将该打开行为数据中的修改时间变更为当前系统时间。
本实施例中,若打开行为数据表中存在与各个字段数据对应的打开行为数据,则打开行为采集服务将该打开行为数据表中的修改时间变更为当前系统时间,也就是将与各个字段数据对应的打开行为数据中的修改时间变更为当前系统时间,实现记录该用户当前的打开行为,也就是实现对用户进行打开行为数据记录。
S308、打开行为采集服务基于各个字段数据和当前系统时间,在打开行为数据表中生成用户打开目标业务场景的用户行为数据。
本实施例中,若打开行为数据表中不存在与各个字段数据对应的打开行为数据,则打开行为采集服务基于各个字段数据和当前系统时间,在打开行为数据表中生成用户打开目标业务场景的用户行为数据,也就是将各个字段和当前系统对应填写至打开行为数据表中,其中,创建人即为用户Id,创建时间和修改时间均为当前系统时间,从而在打开行为数据表中生成一条用户行为数据,该用户行为数据用于记录用户打开目标业务场景的数据。
本申请实施例中,异步执行基于各个字段数据,在预设的打开行为数据表中对用户进行打开行为数据记录,实现避免对原业务功能的影响,并且异步操作内部采用MQ(消息队列)来实现,实现和原业务系统解耦,对原系统无影响。
本申请实施例提供的方法中,参阅图6,打开行为数据的应用场景,可以是运营人员通过打开行为的数据进行运营报表分析,进而制定更好的推广策略,即包括(include)运营分析和方便指定推广策略。也可以是产品设计师通过分析用户打开功能的次数,间接了解自己设计的产品易用性和可用性问题,进而辅助完善产品设计。也可以是广大用户通过最近打开入口,可以快速访问自己最近打开的功能,如最近打开的文档,最近打开的目录,最近打开的团队等。打开行为为什么要做记录,一个是为了产品更好建设和完善,另一个是用户操作的留痕,既可以方便用户快速导航,又可以在违规操作时进行安全取证。
本申请实施例提供的打开行为数据采集方法,接收前端响应用户的打开请求所发送的对目标业务接口的调用请求,并执行与目标业务接口对应的业务逻辑,在业务逻辑执行完成的情况下,从执行业务逻辑得到的结果中采集每个用户行为字段的字段数据,并异步执行基于各个字段数据,在打开行为数据表中对用户进行打开行为数据记录。由于是由服务端采集字段数据,并且字段数据在执行业务逻辑的过程中已经完成业务验证,无需再进行业务验证,提高了服务端的性能和打开行为数据记录效率,同时,由于只采集预设用户行为字段的字段数据,若需开发新的业务场景,只需为业务场景配置预设用户行为字段对应的字段数据即可,无需对前端进行改造开发,提高开发效率。
上述本申请实施例提供的打开行为数据采集方法中,步骤S308之后,还可以包括以下步骤:
打开行为采集服务获取执行结果,执行结果为执行将打开行为数据中的修改时间变更为当前系统时间或执行在打开行为数据表中生成用户打开目标业务场景的用户行为数据的结果;
若执行结果表征未成功变更打开行为数据表中的修改时间,或未成功在打开行为数据表中生成用户打开目标业务场景的用户行为数据,则返回执行向消息队列服务发送消息队列消息的步骤。
本实施例中,打开行为采集服务获取执行将打开行为数据中的修改时间变更为当前系统时间或执行在打开行为数据表中生成用户打开目标业务场景的用户行为数据的结果,并执行结果表征未成功变更打开行为数据表中的修改时间,或未成功在打开行为数据表中生成用户打开目标业务场景的用户行为数据,则返回执行向消息队列服务发送消息队列消息的步骤,也就是返回执行步骤S308,也就是执行MQ重试,以避免数据的丢失。
本申请实施例提供的方法中,通过在执行结果表征未成功变更打开行为数据表中的修改时间,或未成功在打开行为数据表中生成用户打开所述目标业务场景的用户行为数据的情况下,执行消息队列重试,以避免数据的丢失。
上述本申请实施例提供的打开行为数据采集方法中,步骤S104之后,还可以包括以下步骤:
向前端反馈执行业务逻辑得到的结果。
本申请实施例提供的方法中,由于异步执行基于各个字段数据,在预设的打开行为数据表中对用户进行打开行为数据记录,实现避免对原业务功能的影响。
参阅图7,对上述本申请实施例提供的打开行为数据采集方法的具体实现过程进行举例说明如下:
用户进入系统(即上述提及的系统文档系统),在Web或者App上进行打开操作,调具体业务接口,具体操作包括打开团队,打开目录或者打开文档。协同服务收到调用请求后,正常处理业务请求,并获取入参(入参包括,用户Id,租户Id,打开类型(即上述提及的业务场景类型,也就是团队/目录/文档的类型编码),Id(即上述提及的业务场景Id,也就是团队/目录/文档的Id)。),基于入参,调打开行为采集异步接口(即上述提及的打开行为采集接口),并正常返回处理业务请求的处理结果至Web或者App。
打开行为采集服务收到协同服务对打开行为采集异步接口的调用请求后,先进行入参不为空校验,通过后,将入参转成MQ消息,并向MQ服务发送MQ消息,发送失败,会进行重试3次,如果3次后还失败,则记录到结构化数据库的补发表中,由定时任务进行补发,保障消息100%可以发出来,避免丢失消息。
打开行为采集服务预先订阅打开行为的MQ消息,MQ服务在接收到MQ消息后,将MQ消息发送订阅该MQ消息的打开行为采集服务。
打开行为采集服务收到MQ服务发送的MQ消息后,将入参拼接成一个字符串,基于字符串,判断MQ消息是否被重复发送,若重发发送,则丢弃,否则,按入参中的租户Id、用户Id、类型和Id查询非结构化数据库的打开行为表(即上述提及的打开行为数据表)是否存在与入参中的租户Id、用户Id、类型和Id对应的实体(即用户行为数据),其中,打开行为表中核心字段包括租户Id、用户Id、打开类型、打开来源Id、创建人、创建时间和修改时间,查询成功后,返回查询结果,如果查询结果表征存在对应的实体,则更新实体中修改时间为当前系统时间,如果查询结果表征不存在对应的实体,构建写入实体,执行数据的更新或者写入到打开行为表,返回执行数据的更新或者写入到打开行为表的执行结果至打开行为采集服务,如果执行结果表征执行失败,会抛出异常,保障MQ可以重试,以实现消息的最终成功,避免行为数据的丢失。
其中,基于字符串,判断MQ消息是否被重复发送的过程:基于字符串,判断缓存中是否存在于该字符串一致的字符串,若存在,则确定MQ消息被重复发送,若不存在,则确定MQ消息未被重复发送,并将字符串写入缓存中,经过1秒后,将字符串从缓存中删除。
需要说明的是,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本申请公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请公开的范围在此方面不受限制。
与图1所述的方法相对应,本申请实施例还提供了一种打开行为数据采集装置,用于对图1中方法的具体实现,其结构示意图如图8所示,具体包括:
接收单元801,用于接收前端响应用户的打开请求所发送的对目标业务接口的调用请求;所述打开请求用于请求打开目标业务场景,所述目标业务场景为协同文档系统中的任一业务场景,所述目标业务接口为所述目标业务场景对应的业务接口;
执行单元802,用于执行与所述目标业务接口对应的业务逻辑;
采集单元803,用于在所述业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行所述业务逻辑得到的结果中采集每个用户行为字段的字段数据;
记录单元804,用于异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录。
本申请实施例提供的打开行为数据采集装置,由于是由服务端采集字段数据,并且字段数据在执行业务逻辑的过程中已经完成业务验证,无需再进行业务验证,提高了服务端的性能和打开行为数据记录效率,同时,由于只采集预设用户行为字段的字段数据,若需开发新的业务场景,只需为业务场景配置预设用户行为字段对应的字段数据即可,无需对前端进行改造开发,提高开发效率。
在本申请的一个实施例中,基于前述方案,还可以配置为:
反馈单元,用于向所述前端反馈执行所述业务逻辑得到的结果。
在本申请的一个实施例中,基于前述方案,所述服务端包括协同服务、打开行为采集服务和消息队列服务,记录单元804,具体用于:
所述协同服务异步执行通过预设的打开行为采集接口,将各个字段数据传输至所述打开行为采集服务;
所述打开行为采集服务在所述打开行为采集接口传入的各个字段数据不为空的情况下,基于各个字段数据,生成消息队列消息,并向所述消息队列服务发送所述消息队列消息,在所述消息队列服务成功接收到所述消息队列消息的情况下,接收所述消息队列服务反馈的所述消息队列消息,并判断所述消息队列消息是否被重复发送,若未被重复发送,则判断预设的打开行为数据表中是否存在与各个字段数据对应的打开行为数据,若存在,则将所述打开行为数据中的修改时间变更为当前系统时间,若不存在,则基于各个字段数据和当前系统时间,在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据。
在本申请的一个实施例中,基于前述方案,记录单元804,还用于:
所述打开行为采集服务获取执行结果,所述执行结果为执行将所述打开行为数据中的修改时间变更为当前系统时间或执行在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据的结果;
若所述执行结果表征未成功变更所述打开行为数据表中的修改时间,或未成功在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据,则返回执行所述向所述消息队列服务发送所述消息队列消息的步骤。
在本申请的一个实施例中,基于前述方案,记录单元804在向所述消息队列服务发送所述消息队列消息时,具体用于:
向所述消息队列服务发送所述消息队列消息;
判断所述消息队列消息是否被成功发送至所述消息队列服务;
若未被成功发送至所述消息队列服务,则重新向所述消息队列服务发送所述消息队列消息,直至向所述消息队列服务发送所述消息队列消息的次数不小于预设阈值;
将所述消息队列消息写入至补发表中,由定时任务定时向消息队列服务发送所述补发表中的所述消息队列消息,直至所述消息队列消息被成功发送至所述消息队列服务。
在本申请的一个实施例中,基于前述方案,记录单元804在判断所述消息对队列消息是否被重复发送时,具体用于:
对所述消息队列消息中的各个字段数据进行拼接,得到目标拼接结果;
判断缓存包括的各个拼接结果中是否存在与所述目标拼接结果一致的拼接结果,若存在,则确定出所述消息队列消息被重复发送;
若不存在,则将所述目标拼接结果存储至所述缓存中,并确定出所述消息队列消息未被重复发送。
在本申请的一个实施例中,基于前述方案,记录单元804,还用于:
经过预设时长后,删除所述缓存中的所述目标拼接结果。
本申请实施例还提供了一种存储介质,所述存储介质存储有指令集,其中,在所述指令集运行时执行如上文任一实施例公开的打开行为数据采集方法。
本申请实施例还提供了一种电子设备,其结构示意图如图9所示,具体包括存储器901,用于存储至少一组指令集;处理器902,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上文任一实施例公开的打开行为数据采集方法。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本申请公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种打开行为数据采集方法,其特征在于,应用服务端,所述方法包括:
接收前端响应用户的打开请求所发送的对目标业务接口的调用请求;所述打开请求用于请求打开目标业务场景,所述目标业务场景为协同文档系统中的任一业务场景,所述目标业务接口为所述目标业务场景对应的业务接口;
执行与所述目标业务接口对应的业务逻辑;
在所述业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行所述业务逻辑得到的结果中采集每个用户行为字段的字段数据;
异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录。
2.根据权利要求1所述的方法,其特征在于,所述异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录之后,还包括:
向所述前端反馈执行所述业务逻辑得到的结果。
3.根据权利要求1所述的方法,其特征在于,所述服务端包括协同服务、打开行为采集服务和消息队列服务,所述异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录,包括:
所述协同服务异步执行通过预设的打开行为采集接口,将各个字段数据传输至所述打开行为采集服务;
所述打开行为采集服务在所述打开行为采集接口传入的各个字段数据不为空的情况下,基于各个字段数据,生成消息队列消息,并向所述消息队列服务发送所述消息队列消息,在所述消息队列服务成功接收到所述消息队列消息的情况下,接收所述消息队列服务反馈的所述消息队列消息,并判断所述消息队列消息是否被重复发送,若未被重复发送,则判断预设的打开行为数据表中是否存在与各个字段数据对应的打开行为数据,若存在,则将所述打开行为数据中的修改时间变更为当前系统时间,若不存在,则基于各个字段数据和当前系统时间,在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据。
4.根据权利要求3所述的方法,其特征在于,所述在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据之后,还包括:
所述打开行为采集服务获取执行结果,所述执行结果为执行将所述打开行为数据中的修改时间变更为当前系统时间或执行在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据的结果;
若所述执行结果表征未成功变更所述打开行为数据表中的修改时间,或未成功在所述打开行为数据表中生成所述用户打开所述目标业务场景的用户行为数据,则返回执行所述向所述消息队列服务发送所述消息队列消息的步骤。
5.根据权利要求3所述的方法,其特征在于,所述向所述消息队列服务发送所述消息队列消息,包括:
向所述消息队列服务发送所述消息队列消息;
判断所述消息队列消息是否被成功发送至所述消息队列服务;
若未被成功发送至所述消息队列服务,则重新向所述消息队列服务发送所述消息队列消息,直至向所述消息队列服务发送所述消息队列消息的次数不小于预设阈值;
将所述消息队列消息写入至补发表中,由定时任务定时向消息队列服务发送所述补发表中的所述消息队列消息,直至所述消息队列消息被成功发送至所述消息队列服务。
6.根据权利要求3所述的方法,其特征在于,所述判断所述消息对队列消息是否被重复发送,包括:
对所述消息队列消息中的各个字段数据进行拼接,得到目标拼接结果;
判断缓存包括的各个拼接结果中是否存在与所述目标拼接结果一致的拼接结果,若存在,则确定出所述消息队列消息被重复发送;
若不存在,则将所述目标拼接结果存储至所述缓存中,并确定出所述消息队列消息未被重复发送。
7.根据权利要求6所述的方法,其特征在于,所述将所述拼接结果存储至所述缓存中之后,还包括:
经过预设时长后,删除所述缓存中的所述目标拼接结果。
8.一种打开行为数据采集装置,其特征在于,应用服务端,所述装置包括:
接收单元,用于接收前端响应用户的打开请求所发送的对目标业务接口的调用请求;所述打开请求用于请求打开目标业务场景,所述目标业务场景为协同文档系统中的任一业务场景,所述目标业务接口为所述目标业务场景对应的业务接口;
执行单元,用于执行与所述目标业务接口对应的业务逻辑;
采集单元,用于在所述业务逻辑执行完成的情况下,基于预设的多个用户行为字段,从执行所述业务逻辑得到的结果中采集每个用户行为字段的字段数据;
记录单元,用于异步执行基于各个字段数据,在预设的打开行为数据表中对所述用户进行打开行为数据记录。
9.一种存储介质,其特征在于,所述存储介质存储有指令集,其中,所述指令集被处理器执行时实现如权利要求1-7任意一项所述的打开行为数据采集方法。
10.一种电子设备,其特征在于,包括:
存储器,用于存储至少一组指令集;
处理器,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如权利要求1-7任意一项所述的打开行为数据采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479915.6A CN115729780A (zh) | 2022-11-24 | 2022-11-24 | 一种打开行为数据采集方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479915.6A CN115729780A (zh) | 2022-11-24 | 2022-11-24 | 一种打开行为数据采集方法及装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729780A true CN115729780A (zh) | 2023-03-03 |
Family
ID=85297841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479915.6A Pending CN115729780A (zh) | 2022-11-24 | 2022-11-24 | 一种打开行为数据采集方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115729780A (zh) |
-
2022
- 2022-11-24 CN CN202211479915.6A patent/CN115729780A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110445643B (zh) | 异步微服务调用链路跟踪方法、装置、介质及电子设备 | |
US7661036B1 (en) | Cache for collecting events on a monitored computer | |
CN110928851B (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
WO2014166292A1 (zh) | 应用程序管理方法、装置、服务器及终端设备 | |
CN105740326A (zh) | 浏览器的线程状态监测方法及装置 | |
US9515901B2 (en) | Automatic asynchronous handoff identification | |
CN111881011A (zh) | 日志管理方法、平台、服务器及存储介质 | |
CN111680008B (zh) | 日志处理方法、系统、可读存储介质及智能设备 | |
CN112631879A (zh) | 数据采集方法、装置、计算机可读介质及电子设备 | |
CN115729780A (zh) | 一种打开行为数据采集方法及装置、存储介质及电子设备 | |
CN111427917A (zh) | 搜索数据处理方法及相关产品 | |
US7441252B2 (en) | Cache control device, and method and computer program for the same | |
US9852031B2 (en) | Computer system and method of identifying a failure | |
CN111182047B (zh) | 用于在跨网络的大数据平台之间转移文件的方法和系统 | |
CN115455059A (zh) | 一种基于底层数据解析用户行为的方法、装置及相关介质 | |
KR101888131B1 (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 | |
CN110362464B (zh) | 软件分析方法及设备 | |
CN111708802A (zh) | 网络请求防重处理方法及装置 | |
KR0159639B1 (ko) | 안내대에서의 과금 데이타 관리 방법 | |
CN111753141B (zh) | 一种数据管理方法及相关设备 | |
CN117171419B (zh) | 内容处理方法、装置、电子设备、存储介质及程序产品 | |
CN115242685B (zh) | 基于关联矩阵的回放测试方法、装置、设备及存储介质 | |
CN113885774B (zh) | 银行柜面组件信息实时获取和处理方法、系统及电子装置 | |
CN111367867B (zh) | 日志信息处理方法、装置、电子设备及存储介质 | |
CN112104707A (zh) | 数据上报方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |