- 浏览: 27443 次
- 性别:
- 来自: 北京
最新评论
-
bxf12315:
晕了,怎么能吧这篇文章转到论坛里啊!
如何借助“策略模式”才能避免程序中的if else -
bxf12315:
哦 ror我还没搞过。这个只是想用来带着我负责项目组的成员学学 ...
基于URL的契约式简易MVC框架 -
linhong_1001:
怎么都像是ROR,Grails就是这样做的
基于URL的契约式简易MVC框架 -
fmjasper:
你确定这个程序能通过? 不会跑出access exceptio ...
可更新的注册式的单实例模式 -
chian_xxp:
能否请楼主简要介绍下RegSingleton 类中static ...
可更新的注册式的单实例模式
文章列表
最近在学习Anntation和Reflection,一直希望能做一个实际的应用.
所以,假象了一个例子,比如说在方法前加上Annotation来表明方法是否要进行事务处理,然后通过动态代理来执行.
1 MyAnnotationI
java 代码
public interface MyAnnotationI {
public void printString();
public void printString1();
}
2
java 代码
public class MyA ...
继续写,写的有点乱了,望大家不要介意,我会慢慢该过来的。
这是推送程序的activitiy diagram
程序中涉及到一些线程处理方面的问题。
1 多线程的问题。
由于程序中管理程序本身就是一个线程,他负责管理业务线程的初始化和启动,而为了提高效率我们又在业务线程实现了可配置的多线程处理方式。这样在我处理的最多的情况时,可能会执行近百个线程。而且,随着业务的增加还会有更多的线程需要启动。无限制的增加下去,会造成系统负担过重。所以我采用了对线程技术来处理这种问题。
其实很简单就是采用了,jdk1.5中的线程池。代码三行搞定
java 代码
private Thre ...
- 2007-04-18 18:05
- 浏览 1362
- 评论(0)
这个通用的推送做了很久了,来早就想把它的思路整理一下。终于,想做下来整理的时候很快又发现不知道该怎么说了。
还是硬着头皮往下写吧。
那就先说说castor 吧。由于在我们的推送配置是相对比较复杂的,不管是自己通过DOM或者SAX的调用来实现回事相当麻烦的。比如说我们根据我们的配置xml , 需要定义一些对象如config,task ,source 。。。(都对应我们的xml)。那么config下面是可以有不确定个数的task,task下又可以有不确定个数的source,而source下又可以有不确定个数source。这样在在初始化的时候要做大量的对List的操作。一个字麻烦。
...
以上介绍是我对业务描述的xml的介绍,下面该介绍我们是怎么来运行这个xml的业务描述的了。
首先,介绍一下我们采用的一些技术和工具。
1 ibatis-一个简单的orm工具。它很好的完成了将数据访问的实现逻辑写到xml文件中,以及它支持hashmap对象的使用。这两点是我们能实现通用的至关重要的两点。 因为,我们要实现java代码与业务无关那么我们代码应该与具体业务无关。第一步,我们通过使用ibatis基本实现将数据访问逻辑写道xml文件中,第二,在使用数据对象时候我们采用ibatis支持的hashmap。这样我们操作的就都是抽象的与具体业务无关的对象。
2 castor -一个对应于xm ...
首先,介绍一下我通过xml对推送业务的定义。由于,我们的数据下载都是通过对某个具体网站数据的下载,所以,我们下载的数据基本都是树状结构,如下图所示:
主要面对的问题:
1 树状结构的层数不确定
2 节点数不确定
比如说网站展示某产品,就有公司分类,公司,公司图片,产品分类,产品,产品图片等等。这里每一项都
是一个数据节点,属于不同节点的子节点。对于不同的业务就会有不同的节点数与层数。
首先,我通过对现有业务的分析总结一下每一个节点所要执行的动作。
1 从下载库中读出有效数据
2 插入对应的目标库中
3 查询下一级节点
这些是基本每一个节点所具有的属性(通用),下面是我们定义这些节点的xm ...
目前,在公司的一个重要工作内容就是做sprider和b2b数据内容的推送工作。
简单需求描述 公司主要的业务领域就是b2b的垂直搜索,我所在的数据组主要
负责下载联盟网站的b2b的信息,然后讲下载数据进行一定的处理推送到目标库
(线上运行库)中。
以下就是经过这段时间工作对公司业务理解的一个流程图。
那我主要负责的就是推送以及生成生成信用值。
好了,该说说自己的工作了,数据推送本身很简单,就是把a库中数据推送到b库中。但是由于下载数据本身、的不严谨,以及两个库中表结构页不由差异,同时还要求增量的推送。(还有很多小细节方面的东西,比如图片的推送,针对某些字段的简单处理,对一些标志位的设定等 ...