仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1572|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网页编程之DelayQueue在容错时的利用仓酷云

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。1:异步容错的处置需求
碰到毛病动静后,把动静写进到表中同时写进到queue中,把这个毛病的内容异步关照到其他体系中往。同步的工夫距离以2的N次方递增,计划的条件是只管减小数据库的压力。
2:计划
java.util.concurrent.DelayQueue中的对象必需完成java.util.concurrent.Delayed的接口,Delayed元素的一个无界堵塞行列,只要在提早期满时才干从中提取元素。该行列的头部是提早期满后保留工夫最长的Delayed元素。假如提早都还没有期满,则行列没有头部,而且poll将前往null。当一个元素的getDelay(TimeUnit.NANOSECONDS)办法前往一个小于即是0的值时,将产生到期。即便没法利用take或poll移除未到期的元素,也不会将这些元素作为一般元素看待。比方,size办法同时前往到期和未到期元素的计数。此行列不同意利用null元素。
行列中的对象计划:
publicclassDelayDomainimplementsDelayed{
/**
*处置机制:依照发送次数2的N次方秒递增。
*@parampayInternalNotify
*/
publicDelayDomain(intsendtime,Stringurl){
this.sendTime=(newDate()).getTime()+(long)Math.pow(2,sendtime)*TIME_UNIT;
this.url=url;
}
@Override
publicintcompareTo(Delayedobj){
DelayDomaindelayDomain=(DelayDomain)obj;
longtimeout=sendTime–delayDomain.sendTime;
returntimeout>0?1:timeout<0?-1:0;
}
@Override
publiclonggetDelay(TimeUnitunit){
returnsendTime&ndash;System.currentTimeMillis();
}

privatestaticfinalintTIME_UNIT=1000;//依照秒来递增
privatelongsendTime;
privateStringurl;
publicStringgetUrl(){
returnurl;
}
}

Queue的代码:
publicclassSendQueue{
publicstaticvoidput(DelayDomainDelayDomain)
throwsInterruptedException{
QUEUE.put(DelayDomain);
}
publicstaticDelayDomaintake()throwsInterruptedException{
returnQUEUE.take();
}
/**
*增加毛病动静到行列中,
*@parampayInternalNotify
*/
publicstaticvoidaddSendUrl(intsendTime,Stringurl)
throwsInterruptedException{
DelayDomainDelayDomain=newDelayDomain(sendTime,url);
put(DelayDomain);
}
privateSendQueue(){};
//服务行列
privatestaticfinalBlockingQueue<DelayDomain>QUEUE=newDelayQueue<DelayDomain>();
}

测试代码:
publicclassDelayMain{
publicstaticvoidmain(String[]args)throwsException{
System.out.println("Starttime@"+getNow());
SendQueue.addSendUrl(2,"www.baidu.com");
SendQueue.addSendUrl(1,"www.google.com");
SendQueue.addSendUrl(3,"www.hao123.com");
while(true){
DelayDomaindomain=SendQueue.take();
System.out.println(domain.getUrl()+"@"+getNow());
}
}
privatestaticStringgetNow(){
SimpleDateFormatsdf=newSimpleDateFormat("HH:mm:ss");
returnsdf.format(newDate());
}
}

输入了局:
Starttime:11:20:21
www.google.com@11:20:23
www.baidu.com@11:20:25
www.hao123.com@11:20:29
我们看到google在2秒后出行列,百度的4秒,hao123的8秒。放到行列中会主动依照工夫按次来排序,只要工夫到了才会被take出行列,不然一向守候。

3:计划弱点
修正数据库形态不克不及主动同步了。必要经由过程剧本来实行一些过时的内容,大概经由过程接口体例处分容错。

j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。
小妖女 该用户已被删除
沙发
发表于 2015-1-19 06:39:44 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-24 10:18:32 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
柔情似水 该用户已被删除
地板
发表于 2015-1-25 17:41:24 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
只想知道 该用户已被删除
5#
发表于 2015-1-27 05:35:05 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
飘飘悠悠 该用户已被删除
6#
发表于 2015-1-31 15:37:58 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
爱飞 该用户已被删除
7#
发表于 2015-2-4 13:30:12 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
再现理想 该用户已被删除
8#
发表于 2015-2-9 23:38:22 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
山那边是海 该用户已被删除
9#
发表于 2015-2-16 08:42:05 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
再见西城 该用户已被删除
10#
发表于 2015-3-5 02:18:59 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
莫相离 该用户已被删除
11#
发表于 2015-3-8 17:35:47 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
透明 该用户已被删除
12#
发表于 2015-3-13 12:08:49 | 只看该作者
是一种使用者不需花费很多时间学习的语言
第二个灵魂 该用户已被删除
13#
发表于 2015-3-16 07:56:24 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
透明 该用户已被删除
14#
发表于 2015-3-22 21:11:01 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
深爱那片海 该用户已被删除
15#
发表于 2015-3-27 22:26:33 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
活着的死人 该用户已被删除
16#
发表于 2015-4-1 15:08:47 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
乐观 该用户已被删除
17#
发表于 2015-4-14 15:59:48 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
不帅 该用户已被删除
18#
 楼主| 发表于 2015-4-16 14:45:37 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
小魔女 该用户已被删除
19#
发表于 2015-4-17 00:45:40 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
海妖 该用户已被删除
20#
发表于 2015-4-17 21:29:03 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 01:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表