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

通用数据推送 (3)

阅读更多

以上介绍是我对业务描述的xml的介绍,下面该介绍我们是怎么来运行这个xml的业务描述的了。
首先,介绍一下我们采用的一些技术和工具。
1 ibatis-一个简单的orm工具。它很好的完成了将数据访问的实现逻辑写到xml文件中,以及它支持hashmap对象的使用。这两点是我们能实现通用的至关重要的两点。 因为,我们要实现java代码与业务无关那么我们代码应该与具体业务无关。第一步,我们通过使用ibatis基本实现将数据访问逻辑写道xml文件中,第二,在使用数据对象时候我们采用ibatis支持的hashmap。这样我们操作的就都是抽象的与具体业务无关的对象。


2 castor -一个对应于xml的orm工具。简化了我们对配置xml的读取工作

3 线程池-

4 对象池 -

5  Vfs 一个虚拟文件系统 重要用来实现我们的文件远程传输。

下图是对现在程序流程的一个简单描述

 

一 任务管理器

 因为通用推送是针对不同的业务而言,我们通过配置文件来描述不同的推送任务。

二 单一业务的配置

以下是我们对单个任务的描述信息。

xml 代码
  1. <config>  
  2.     <task id="##" interval="300000">  
  3.         <source id="1" name="website" isTranstion="false" isMuTheard="true" futrueid="ID">  
  4.             <query id="sender.getAllHrWebsites" name="getAllHrWebsites" type="select"/>  
  5.             <source id="1.1" name="unsendedcompany" isTranstion="true" isMuTheard="false"  
  6.                 interval="1000">  
  7.                 <query id="sender.getUnsendedHrCompanies" name="getUnsendedHrCompanies" type="page"  
  8.                     loggInfo="ID,COMPANY_NAME" maxField="ID">  
  9.                     <fieldRef name="WEB_MAPID" parentref="MAP_ID"/>  
  10.                 query>  
  11.                 <update id="sender.insertHrCompanies" name="insertHrCompanies" type="insert"  
  12.                     index="1"/>  
  13.                 <update id="sender.updateSendedHrCompanies" name="updateSendedHrCompanies"  
  14.                     type="update" index="2"/>  
  15.                 <source id="1.1.1" name="unsendjob" isTranstion="false" isMuTheard="false"  
  16.                     futrueid="">  
  17.                     <query id="sender.getUnsendedPositions" name="getUnsendedPositions"  
  18.                         type="select">  
  19.                         <fieldRef name="WEB_MAPID" parentref="WEB_MAPID"/>  
  20.                         <fieldRef name="COMP_ID" parentref="SEND_ID"/>  
  21.                     query>  
  22.                     <update id="sender.insertPositions" name="insertPositions" type="insert"  
  23.                         index="1"/>  
  24.                     <update id="sender.updateSendedPositions" name="updateSendedPositions"  
  25.                         type="update" index="2"/>  
  26.                     <source id="1.1.1.1" isMuTheard="false" isTranstion="false"  
  27.                         name="unsendpositionsinc">  
  28.                         <query id="sender.getPositionRegions" type="select"  
  29.                             name="getPositionRegions"/>  
  30.                         <update id="sender.insertRegions" name="insertRegions" type="insert"  
  31.                             index="1"/>  
  32.                     source>  
  33.                 source>  
  34.                 <source id="1.1.2" name="sendedjob" isTranstion="false" isMuTheard="false">  
  35.                     <query id="sender.getSendedPositions" name="getSendedPositions" type="select"/>  
  36.                     <update id="sender.updatePosition" name="updatePosition" type="insert" index="1"/>  
  37.                     <update id="sender.updateSendedPositions" name="updateSendedPositions"  
  38.                         type="update" index="2"/>  
  39.                 source>  
  40.             source>  
  41.             <source id="1.2" name="sendedcompany" isTranstion="false" isMuTheard="false"  
  42.                 interval="1000">  
  43.                 <query id="sender.getSendedHrCompanies" name="getSendedHrCompanies" type="page"  
  44.                     loggInfo="ID,COMPANY_NAME" maxField="ID">  
  45.                     <fieldRef name="WEB_MAPID" parentref="MAP_ID"/>  
  46.                 query>  
  47.                 <source id="1.2.1" name="unsendjob" isTranstion="false" isMuTheard="false"  
  48.                     futrueid="">  
  49.                     <query id="sender.getUnsendedPositions" name="getUnsendedPositions"  
  50.                         type="select">  
  51.                         <fieldRef name="WEB_MAPID" parentref="WEB_MAPID"/>  
  52.                         <fieldRef name="COMP_ID" parentref="SEND_ID"/>  
  53.                     query>  
  54.                     <update id="sender.insertPositions" name="insertPositions" type="insert"  
  55.                         index="1"/>  
  56.                     <update id="sender.updateSendedPositions" name="updateSendedPositions"  
  57.                         type="update" index="2"/>  
  58.                     <source id="1.2.1.1" isMuTheard="false" isTranstion="false" name="unsendregion">  
  59.                         <query id="sender.getPositionRegions" type="select"  
  60.                             name="getPositionRegions"/>  
  61.                         <update id="sender.insertRegions" name="insertRegions" type="insert"  
  62.                             index="1">  
  63.                             <fieldRef name="POSITION_ID" parentref="SEND_ID"/>  
  64.                         update>  
  65.                     source>  
  66.                 source>  
  67.                 <source id="1.2.2" name="sendedjob" isTranstion="false" isMuTheard="false">  
  68.                     <query id="sender.getSendedPositions" name="getSendedPositions" type="select"/>  
  69.                     <update id="sender.updatePosition" name="updatePosition" type="insert" index="1"/>  
  70.                     <update id="sender.updateSendedPositions" name="updateSendedPositions"  
  71.                         type="update" index="2"/>  
  72.                 source>  
  73.             source>  
  74.         source>  
  75.     task>  
  76. config>  

 

而我们的任务管理器是可以管理多个这样任务的。

分享到:
评论

相关推荐

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

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

    dojo数据推送库

    3. **消息处理**:dojo数据推送库提供了一套事件驱动的API,开发者可以注册回调函数来处理接收到的消息。这样,当服务器推送新数据时,相应的处理逻辑就会被触发。 4. **错误处理与重试机制**:在连接中断或失败时...

    极光推送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版

    接着,可以通过`JPushClient`发送推送,指定目标(全部设备、个别设备或标签),设定通知内容和附加数据。 总的来说,极光推送Java版通过其SDK和相关库,为开发者提供了便捷的推送功能,能够帮助开发者实现高效的...

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

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

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

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

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

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

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

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

    APP信鸽推送手册

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

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

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

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

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

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

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

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

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

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

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

    极光推送api

    1.7.7.jar`,这些都是极光推送服务的依赖库,它们分别用于Spring框架支持、日志记录、JSON序列化和反序列化、通用日志接口及其实现。开发者在使用极光推送时,需要确保这些依赖库被正确引入到项目中。 4. **Gson**...

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

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

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

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

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

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

    push独立证书,完美修复后台推送问题!iphone推送证书,iphone推送修复!定义.pdf

    3. 恢复设备的网络设置,这可以通过“设置”-“通用”-“还原”-“还原网络设置”来完成。这个操作不会导致设备变砖,但卡贴机用户不必担心。 4. 将证书包解压,使用iTunes或其他文件管理工具(如iTools)将四个文件...

Global site tag (gtag.js) - Google Analytics