动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.国外专家谈游戏制作.
.有选择地显示预加载内容 提高网站.
.使用Decorator模式实现日期选择组.
.(6)CLDC API.
.经典java问题,你能答出几个?.
.EJB——Enterprise JavaBeans技术.
.给Java程序穿花衣.
.JDBC中的中文处理.
.java开源项目研究—— 开源的历史.
.在Robocode中使用Vector实现敌人.
..par已被抛弃,Jboss标准.ejb3将步.
..NET中实现彩色光标,动画和自定.
.J2ME的无线消息传递概述与应用程.
.Java Socket编程之四.
.junit的开发(eclipse插件开发系列.
.使用SAX和XSLT实现复杂数据转换(.
.发现Hibernate中文问题又一解决方.
.Java学习从入门到精通(1).
.在Eclipse3.0.x配置基于STRUTS的.
.BEA的Workshop Studio开发者.

Neptune任务构建系统的实例

发表日期:2008-1-5 |


最近公司有一个需求发现用neptune实现起来非常清新爽洁不紧绷。

需求是这样:

  • 需要从某公司下载大量的数据文件。
  • 一共有十八种不同的文件,比如Customer,Company, StockIndex等等。
  • 从2003年4月一直到现在,每个工作日都有数据文件下载。周末没有。
  • 对某一天,比如2005/1/3的Customer文件,url的格式是:http://river.com/repos/2005/01/03/Customer.zipNeptune任务构建系统的实例

  • 开始需要把所有历史文件下载下来。
  • 然后天天都持续下载新文件。
  • 在给定的某一天,不一定每个文件都有。有时候Customer没有,或者Company没有。理论上,可以每个文件都没有。
  • 下载下来的文件需要unzip。unzip出来的会是一个csv文件。
  • 这个csv文件需要被输入到数据库中的对应表中。这一天的日期也要存在这个表里,作为一个列。也就是说Customer, Company这些表除了有这些数据文件里面的每一个field之外,还有一个date列,来表示这个纪录是哪一天的。

下面是一些思考:

  1. 因为一个文件可能也可能不存在,所以这个文件不存在不能让整个流程停下来。文件不存在我们需要停止接下来的对这个文件的解压和导入数据库。但是不能中断其他文件的下载。
  2. 因为从别的公司下载,也无法保证敌人给我们的文件永远格式正确。假如万一解压失败,或者导入数据库失败,也能终端整个任务。
  3. 文件需要下载到本地目录里面,因为不同日期的文件名字一样,所以我们本地也可以构建一个yyyy/mm/dd格式的目录树。
  4. 一个一个文件下载,解压,导入,非常没有效率。也许敌人的网络很慢,这样整个任务就会持续太长时间。最好的办法是能够并行同时处理多个文件。
  5. 持续更新的时候,不能简单地只使用当前日期。因为也许因为某些原因前一天的某个文件没有及时更新或者下载失败了之类的。为了保证程序的健壮性,我们最好是从数据库读取最新日期,那一天的下一天就是我们要开始处理的日期。
  6. 下载,解压,调用数据库这些基本动作都可以用ant的任务来实现。
  7. 导入数据库我们用一个存储过程实现。

好,下面让我们从头构建这个任务。

下载:

download srcfile zipfile = ant.get{src=srcfile,dest=zipfile,username="myuser",
passWord="mypwd",usetimestamp=true,verbose=false};

解压:

unzip zipfile destdir = ant.unzip{src=zipfile, dest=destdir};

导入数据库:

importFile date name = ant.sql(db_connection).with[
    "exec loadDataFile '${destdir}', '${datestr}', '${name}'"
]
where
  datestr = datepath date;
  destdir = "$csvroot/$datestr";
end;

导入数据库这一步用到了几个辅助函数和变量。

  • datepath函数负责把一个java.util.Date对象转换成"yyyy/MM/dd"格式的字符串。它使用jaskell的内建函数format:
    datepath date = jaskell.dates.format{pattern="yyyy/MM/dd"} date;
  • db_connection是一个储存着所有数据库连接相关信息的对象。
  • csvroot是储存所有csv文件的根目录。


上一篇:基于OO模版技术的文档Web输出新法 人气:343
下一篇:ChartDirector柱状图使用方法 人气:701
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.8 Build 0
2008-7-6 讯息内容管理系统 v2.1
2008-7-6 三五电影程序 v2.0
2008-7-6 神鹰腾讯小说小偷 v3.0
2008-7-6 EasyIDE Framework v1.0 Build 2
2008-7-6 品告CMS系统(电影版) v0.9
2008-7-6 QQ自动登录器 C# 源码 v1.0
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報