论坛首页 Java企业应用论坛

通用数据推送 (3)

浏览 1881 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-16  

以上介绍是我对业务描述的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>  

 

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

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics