自己写的在服务器上一段重试次数的程序,对于TAIR操作需要加乐观锁版本号防止集群上数据安全

本文涉及的产品
数据安全中心,免费版
简介:

封装类

package aa;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class TairMethodWrapper {

	private static Map<String, TairRetryEntry> superdealCache = new ConcurrentHashMap();

	public static interface SuperdealTairMethodWrapperInvoke {
		void invoke();
	}

	class TairRetryEntry {
		long writeTime;
		int count;
	}

	public void invoke(SuperdealTairMethodWrapperInvoke superdealTairMethodWrapperInvoke,
			String type, Long repeatInterval, Integer repeatCount) {
		// TODO Auto-generated method stub
		if(!isRetry(type, repeatInterval, repeatCount)) {
			isRetry(type, repeatInterval, repeatCount);
		}
	}
	

	protected boolean isRetry(String type, Long repeatInterval,
			Integer repeatCount) {
		TairRetryEntry entry = superdealCache.get(type);
		if (entry == null) {
			entry = new TairRetryEntry();
			entry.count = 0;
			entry.writeTime = System.currentTimeMillis();
			superdealCache.put(type, entry);
		} else if ((System.currentTimeMillis() - entry.writeTime) >= repeatInterval) {
			entry.count = 0;
			entry.writeTime = System.currentTimeMillis();
		}
		
		entry.count++;
		if (entry.count >= repeatCount) {
			return true;
		}
		//do our method here  if success,return true
		
		
		return false;
	}

}


调用方法

import aa.TairMethodWrapper;
import aa.TairMethodWrapper.SuperdealTairMethodWrapperInvoke;










public class TestRetry1 {

	public static void main(String[] args) {
		retry1();
	}
	
	private static void retry1() {
		 new TairMethodWrapper().invoke(new SuperdealTairMethodWrapperInvoke(){

			@Override
			public void invoke() {
				// TODO Auto-generated method stub
				
			}}, "featuredeal", Long.parseLong("150"), 5);
	}
}





目录
相关文章
|
26天前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
2月前
|
SQL 机器学习/深度学习 分布式计算
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
70 1
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
59 1
|
2月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
80 6
|
2月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
384 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
2月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
46 4
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
76 4
|
2月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
169 5
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
34 3
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
59 3