自己写的在服务器上一段重试次数的程序,对于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);
	}
}





目录
相关文章
|
3月前
|
存储 监控 安全
服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
【10月更文挑战第4天】服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
148 65
|
7月前
|
人工智能 网络安全 开发工具
视觉智能开放平台操作报错合集之服务部署在pdd的服务器,调用报错:The SSL connection could not be established,该如何解决
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
148 0
|
3月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
87 1
|
4月前
|
存储 数据库 数据安全/隐私保护
服务器数据备份是保障数据安全、防止数据丢失和灾难恢复的重要措施
服务器数据备份是保障数据安全、防止数据丢失和灾难恢复的重要措施
111 1
|
4月前
|
JavaScript Linux 开发工具
如何将nodejs项目程序部署到阿里云服务器上
该文章详细描述了将Node.js项目部署到阿里云服务器的步骤,包括服务器环境配置、项目上传及使用PM2进行服务管理的过程。
|
5月前
|
存储 关系型数据库 MySQL
XtraBackup 的版本大揭秘:突破迷雾,揭开其支持 MySQL 版本的震撼真相,捍卫数据安全!
【8月更文挑战第7天】XtraBackup 是 MySQL 备份领域的热门工具,适用于多个版本。它为 MySQL 8.0 提供高效备份,确保数据安全。同样支持 MySQL 5.7 和其他稳定版如 5.6,精确备份各类数据结构。
139 0
|
5月前
|
网络安全 数据安全/隐私保护 iOS开发
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
230 0
|
6月前
|
缓存 弹性计算 数据库
阿里云2核4G服务器支持多少人在线?程序效率、并发数、内存CPU性能、公网带宽多因素
2核4G云服务器支持的在线人数取决于多种因素:应用效率、并发数、内存、CPU、带宽、数据库性能、缓存策略、CDN和OSS使用,以及用户行为和系统优化。阿里云的ECS u1实例2核4G配置,适合轻量级应用,实际并发量需结合具体业务测试。
103 0
阿里云2核4G服务器支持多少人在线?程序效率、并发数、内存CPU性能、公网带宽多因素
|
6月前
|
文字识别 API 开发工具
印刷文字识别操作报错合集之服务器出现了临时故障,该怎么办
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
7月前
|
弹性计算 网络协议 Serverless
Serverless 应用引擎操作报错合集之使用ecs,反代到函数的内网域名上,提示{"ErrorCode":"DomainNameNotFound",是什么原因
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
130 7