关于rop服务方法超时重试建议
kelloKitty
2012-05-29
1.如何在rop框架指定客户端调用服务方法的超时时间设置呢?,如果是cxf指定connectionTimeout熟悉就可以了。
2.调用服务方法超时了rop又该如何处理呢? 谢谢。 |
|
stamen
2012-05-29
你这个建议太好了,我拟采用如下方式设计:
在@ApiMethod这个注解类中添加一些属性,对服务方法进行额外的控制,原来只有一个value()的属性: package com.rop.annotation; import java.lang.annotation.*; /** * <pre> * 使用该注解对服务方法进行标注,这些方法必须是Spring的Service:既打了@Service的注解。 * </pre> * * @author 陈雄华 * @version 1.0 */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ApiMethod { /** * 服务的方法名,即由method参数指定的服务方法名 * @return */ String value(); /** * 所属的服务分组,默认为"DEFAULT" * @return */ String group() default DEFAULT_GROUP; /** * 标签,可以打上多个标签 * @return */ String[] tags() default ""; /** * 服务的中文名称 * @return */ String title() default ""; /** * 访问过期时间,单位为位,即大于这个过期时间的链接会结束并返回错误报文,如果 * 为0或负数则表示不进行过期限制 * @return */ int timeout() default 0; /** * 该方法所对应的版本号,对应version请求参数的值,版本为空,表示不进行版本限定 * @return */ String version() default ""; /** * 服务方法需要需求会话检查,默认为true * @return */ boolean needInSession() default true; /** * 是否忽略签名检查 * @return */ boolean ignoreSign() default false; /** * 默认的组 */ public static final String DEFAULT_GROUP ="DEFAULT"; } |
|
kelloKitty
2012-05-29
恩,我开始也是这样想的,在apimethod注解加上timeout属性值。
但是有个问题,如果才能拿到服务方法的返回时间和服务方法上的timeout注解值做比较呢?实现上有好的方式吗? |
|
stamen
2012-05-29
kelloKitty 写道 恩,我开始也是这样想的,在apimethod注解加上timeout属性值。
但是有个问题,如果才能拿到服务方法的返回时间和服务方法上的timeout注解值做比较呢?实现上有好的方式吗? Rop应该有一个过期判断的背景线程,在请求到达后记录时间并放到一个列表中管理,然后定期检查有没有过期。当请求返回响应后,这条过期时间管理的记录从列表中清除。 且待我实现出来,应该不难。 其实TestNG的@Test注解也有一个timeout的属性,和我们这边的是完全一样的,实现前我也要先去读读TestNG的源码。 |
|
kelloKitty
2012-05-29
lz太强大了,我现在也在看cxf源码的超时机制。想看看他们是如何实现的。
期待lz早日实现,也好学习一下。 |
|
小树鹿鸣
2012-05-29
LZ 确实强大, 目前正期待LZ快点完成, 我就可以搬到项目里去了.
|
相关讨论
相关资源推荐
- 邮件服务器漏洞攻击,Exim邮件服务中的严重漏洞分析
- 渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集
- Redis源码剖析和注释(二十一)--- 单机服务器实现
- 脉冲星 11 月脉动 | Pulsar Flink Connector 2.7.0、RoP 0.2.0 博客新鲜出炉!
- SpringBoot项目集成UniPush推送服务
- Redis设计与实现 笔记 第十四章 服务器
- [网络安全自学篇] 九十二.《Windows黑客编程技术详解》之病毒启动技术创建进程API、突破SESSION0隔离、内存加载详解(3)
- 全国计算机等级考试三级网络技术
- UNIX网络编程--Setsockopt
- \\\\\\ setsockopt()总结