`
bxf12315
  • 浏览: 26864 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通用数据推送(2)

阅读更多

首先,介绍一下我通过xml对推送业务的定义。由于,我们的数据下载都是通过对某个具体网站数据的下载,所以,我们下载的数据基本都是树状结构,如下图所示:

 

主要面对的问题:
1 树状结构的层数不确定
2 节点数不确定
比如说网站展示某产品,就有公司分类,公司,公司图片,产品分类,产品,产品图片等等。这里每一项都
是一个数据节点,属于不同节点的子节点。对于不同的业务就会有不同的节点数与层数。
首先,我通过对现有业务的分析总结一下每一个节点所要执行的动作。
1 从下载库中读出有效数据
2 插入对应的目标库中
3 查询下一级节点
这些是基本每一个节点所具有的属性(通用),下面是我们定义这些节点的xml。

xml 代码
  1. <source id="companies" interval="1000" name="company" istranstion="true" futrueid="ID" ismutheard="false">    


这些是我们每个节点的一些设置信息。其中 isTranstion是指我们控制事务的粒度是从这一级的节点开始控制的。isMuTheard是指,我们时候以这个为线索执行多线程(为了加快一下处理数度)。futrueid和interval是线程的休息,线程id号,线程间隔启动时间。
下面是对节点动作的描述
1 查询此节点的数据

xml 代码
  1. <query id="****" name="***" type="page" maxfield="ID">  

其中id就是ibatis中对应的函数id(在这里面我们采用ibatis,具体的设置在后面详细描述)。name是来表明这个查询的含义,type和maxField主要是针对数据分页问题解决方法。
因为在下载数据中符合条件的数据经常达到几十万,如果不采取分页技术的话,会导致程序执行缓慢甚至导致崩溃。如果我们type指向page那么说明我的查询要求分页,maxFiled则是指我们是按那个字段来排序的。
2 插入更新操作数据

xml 代码
  1. <update id="**" name="**" type="insert" index="1">  


这里有两个特殊的地方是type,我分了这么几种insert,update,procedure,transfer。前两就不需要解释了,procedure就是对存储过程的一种,transfer这个比较特殊主要是为了完成文件远程存储。最后这个index是非常关键的因为在对这个节点数据进行插入更新文件传输操作的时候这些动作的执行是有先后顺序的。
由于更新操作的前三种类型是与数据库相关的,主要就是id对应的ibatis中sql id 的调用。但是,transfer就比较特殊了。

xml 代码
  1. <update id="sender.transfer" name="transfer" type="transfer"  
  2. srcFile="#PHOTO_PATH#" tempFile="d:\\temp\\" targetFile="ftp://hexiaofeng:xiaofeng123@192.168.5.21:21/server/img/#IMAGEROOTPATH#/products/?imageTarget(#PHOTO_SEND_ID#)"  
  3. index="3"/>    


其中srcfile是指下载文件的路径,#PHOTO_PATH#是指在存储文件路径的字段名,targetFile是指通过一定逻辑生成的目标路径名。

以上这两种动作就是我们所有数据节点的动作(也就是业务)。
下面介绍一下,我们对这些业务动作一些设置功能的配置。
1

xml 代码
  1. <fieldref name="WEB_×××" parentref="MAP_ID">  

这个主要是针对外键引用的设置。
2

xml 代码
  1. <condition type="isNull" property="×××">  

这个是条件设置,因为在执行一些动作的时候回需要满足一些条件才可以进行,比如两个指比较大小,判断是否为空等。这个条件嵌入到动作中完成对动作的限制。

3

xml 代码
  1. <statusConfig value="1" statusFielder="SHOW_STATUS" defaultValue="0">  
  2.                         <condition property="COMP_NAME" type="isChinese"/>  
  3.                         <condition property="DESCRIPTION" type="isChinese"/>  
  4.                     </statusConfig>  


这个配置主要是为了一些特殊要求所设定的,比如说当数据满足一下条件是将SHOW_STATUS设置为0或者设置成1.
以下附上我对某个业务完整的描述。

并以图说明

分享到:
评论
2 楼 bxf12315 2007-04-16  
刚刚学会了贴自己的代码。呵呵。第一次来宝地啊
1 楼 rainlife 2007-04-16  
您上面有好几个空白的框框,请您重新组织一下您的代码编辑一下吧,呵呵。

相关推荐

    C# 后台 使用Http协议获取GET / 推送POST 数据的通用类

    C# 后台 使用Http协议获取GET / 推送POST 数据的通用类

    dojo数据推送库

    **dojo数据推送库** 在Web开发中,实时通信是一个重要的需求,尤其是在构建交互性强的Web应用时。dojo是一个强大的JavaScript工具包,它提供了一系列丰富的功能,包括数据推送库。这个库,我们称之为“dojo数据推送...

    极光推送java端API

    `jpush-client-3.3.9.jar`包含了极光推送的客户端接口和实现,而`jiguang-common-1.1.3.jar`则是通用的JIGUANG库,可能包含了网络通信、数据序列化等基础工具类。 8. **集成与使用** 开发者需要在项目中引入这两个...

    OPPO推送平台服务端API-V1.3.pdf

    最后,文档中还涉及了消息推送相关的数据结构,比如action_parameters是一个JSON格式的字段,用于存放传递给应用或网页的动作参数,限制为4K字符以内。 整个文档提供的信息对于开发者而言非常重要,它帮助开发者更...

    jpush极光推送java版

    2. jpush-client-3.2.10.jar:这是极光推送Java客户端SDK的核心库。它包含了所有与极光推送服务器交互的类和方法,如注册设备、发送推送、处理回调等。开发者可以通过这个库来实现应用的注册、获取设备Token、设置...

    机器学习打造58同城APP个性化推送系统

    7. 实现技术:推送系统整体架构中,涉及客户端、推送通道、消息总线、通用推送平台和消息处理等多个层面。其中,客户端需要适配不同的操作系统(如安卓和苹果),以确保推送通知能够覆盖所有用户。 8. 兴趣挖掘和...

    MFC实现ffmpeg流媒体数据推送与接收(2.推流)

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来实现基于ffmpeg的流媒体数据推送。ffmpeg是一个强大的开源工具集,用于处理音视频数据,包括编码、解码、转码、流化等操作。MFC是微软提供的...

    电信设备-通用多屏智能信息推送方法及装置.zip

    《电信设备-通用多屏智能信息推送方法及装置》是一个涉及现代信息技术领域的专题,主要探讨的是如何在多种屏幕设备上实现智能化的信息推送。这个主题涵盖了通信技术、物联网、大数据处理和用户行为分析等多个方面,...

    九戒站长统计营销广告推送工具CNZZ、百度统计、51LA通用版

    【标题】"九戒站长统计营销广告推送工具CNZZ、百度统计、51LA通用版"涉及的关键知识点包括: 1. **站长统计工具**:这是一个专门为网站管理员设计的工具,帮助他们跟踪和分析网站流量、用户行为以及广告效果。在这...

    Go-Plasma:通用服务器推送中间件使用gRPC流和服务器发送事件SSE

    服务器发送事件(SSE)是一种允许服务器向浏览器持续发送事件的机制,通过HTTP连接保持打开状态,服务器可以不断地将新数据推送到客户端,而无需客户端发起新的请求。SSE具有低延迟、易于实现和良好的兼容性等特点,...

    APP信鸽推送手册

    根据提供的文件内容,以下是对“信鸽推送”相关知识点的详细解读: ### 信鸽推送概述 信鸽推送是一种通过REST API进行的服务,旨在为开发者提供稳定、高效的推送服务。开发者可以通过信鸽推送向用户终端设备发送...

    Kettle实现使用Http post控件实现钉钉机器人消息推送测试源代码

    实现一个通用的kettle消息推送,于是想到通过钉钉机器人推送消息到钉钉群组,这样就可以方便配置封装成通用的消息推送的映射子转换,实现后面作业或转换的消息提醒或者异常告警通知。已完成测试源代码分析

    JPush Utils_极光推送_jpush推送工具_jpush_推送工具_

    - **登录态管理**:支持保持用户登录状态,便于进行个性化推送和数据分析。 3. **分享(JShare)** - **社交平台集成**:JPush 提供与主流社交平台的集成,如微信、QQ、微博等,方便用户分享内容。 - **分享接口...

    swift-基于Golang开发的iOS推送服务

    4. `models`:定义推送通知的数据结构。 5. `utils`:通用工具函数,例如加密解密、日志记录等。 6. `README.md`:项目介绍和使用指南。 在实际开发过程中,我们还需要考虑以下方面: - 错误处理:确保在处理推送...

    电信设备-基于行业数据词典的垂直搜索精准信息推送方法.zip

    标题提到的"电信设备-基于行业数据词典的垂直搜索精准信息推送方法",是针对电信领域的一种特殊应用,旨在利用特定的数据处理和搜索策略,为用户提供更加精确、个性化的信息。以下是关于这个主题的详细解读。 一、...

    极光推送api

    2. **客户端SDK**:如`jpush-client-3.2.9.jar`和`jpush-client-3.2.10.jar`,这是极光推送服务在设备上的运行库,负责接收、处理和显示推送消息。SDK内部实现了与服务器的通信,以及消息的解析、展示和存储等功能。...

    私有云-多厂商推送透传消息带通知使用文档(java).pdf

    - **公共参数**:设置通用的推送参数,如消息类型、标题、内容和自定义数据。 - **通知扩展功能参数**:包括华为角标、小米消息分类、OPPO消息分类、VIVO消息分类等,用于根据不同厂商的特性定制推送内容。 - **...

    电信设备-推送信息的方法.zip

    8. **合规性与法律法规**:电信设备推送信息必须符合各国的通信法规,如中国的信息安全管理规定,欧盟的GDPR(通用数据保护条例)等,确保合法合规运营。 综上所述,电信设备推送信息的方法涵盖了网络传输、消息...

    友盟推送so库文件,arm64-v8a,armeabi-v7a架构

    通过集成友盟推送SDK,开发者可以实现自定义消息模板、精准定向推送、多渠道分发等功能,提升用户体验并进行数据分析。 arm64-v8a架构是ARM的64位指令集,常见于较新的Android设备中,例如那些基于高通骁龙、三星...

    Koala消息推送服务系统设计1

    Koala消息推送服务系统是一种专为互联网应用设计的高效、可靠的消息推送平台,它旨在提高用户体验,通过主动推送信息至客户端,避免了用户频繁地手动刷新来获取最新数据。在即时通讯场景中,如收到新消息时自动提示...

Global site tag (gtag.js) - Google Analytics