同步数据库到Codis代码
同步mysql数据库到codis缓存中
public void syncRule() {
// 根据时间戳获取Mycat中规则表数据
logger.info("start ...");
String sql = "";
// 若最后一次同步时间为空,则按最后更新时间排序,取最小的时间作为当前时间戳
if (ruleCurrentTimestamp != null) {
sql = "select * from t_table where update_date >" + ruleCurrentTimestamp + " order by update_date limit 10";
} else {
sql = "select * from t_table order by update_date limit 10";
}
// 升序会将最后一次的时间也就是最大的时间作为当前的currentTimeStamp
jdbcTemplate.query(sql, new Object[] {}, new RowMapper<String>() {
public String mapRow(ResultSet result, int rowNum) throws SQLException {
ruleCurrentTimestamp = result.getLong("update_date");
return result.getString("rule_code");
}
});
// objs 即是Mycat里面查询出来需要同步的数据
List<JSONObject> objs = jdbcTemplate.query(sql, new Object[] {}, new RowMapper<JSONObject>() {
public JSONObject mapRow(ResultSet result, int rowNum) throws SQLException {
int c = result.getMetaData().getColumnCount();
JSONObject obj = new JSONObject();
for (int t = 1; t <= c; t++) {
if (result.getObject(t) == null) {
continue;
} else {
obj.put(result.getMetaData().getColumnLabel(t).toLowerCase(), result.getObject(t));
}
}
return obj;
}
});
/**
* 将风控事件表的rule_code作为key ,该条数据作为value,写入Codis中
*/
try {
for (JSONObject obj : objs) {
logger.info(obj.get("rule_code").toString());
jedis.set(obj.get("rule_code").toString(), obj.toJSONString());
}
logger.info("同步到Codis成功!!!");
rulePreviousTimestamp = ruleCurrentTimestamp;
// 将写入成功后的时间写到zookeeper中
zkClient.writeData(Constant.RULE_TIMESTAMP_PATH, String.valueOf(ruleCurrentTimestamp));
} catch (Exception e) {
logger.info("同步到Codis失败!!!");
ruleCurrentTimestamp = rulePreviousTimestamp;
logger.error(e.getMessage(), e);
}
}
同步数据库到Codis代码的更多相关文章
- Netsharp快速入门(之5) 基础档案(之D 实体建模 生成实体代码、同步数据库、配置插件运行时)
作者:秋时 杨昶 时间:2014-02-15 转载须说明出处 3.3.1 同步数据库并生成dll文件 1.在基础档案和销售管理项目上右击,选择同步数据库结构来创建数据库表 2. 在基础档案项目 ...
- 项目管理实践【六】自动同步数据库【Using Visual Studio with Source Control System to synchronize database automatically】
在上一篇项目管理实践[五]自动编译和发布网站中,我们讲解了如何使用MSBuild+Robocopy+WebDeployment来自动编译和部署网站,今天,我们来看一下,如何使用MSBuild +SVN ...
- SQL SERVER 2008 数据库隔离级别代码演示
SQL SERVER 2008 数据库隔离级别代码演示 个隔离级别(其实这是SQL 工业标) 种隔离级别,本身没有优劣之分,完全取决于应用的场景. 本质上,他们是在 隔离性(紊乱程度) 和 灵活性 ...
- Linux上搭建Elasticsearch服务器并同步数据库
1.准备工作 下载Elasticsearch版本号2.3.4 https://www.elastic.co/downloads/past-releases/elasticsearch- ...
- Entity Framework 实体框架的形成之旅--几种数据库操作的代码介绍(9)
本篇主要对常规数据操作的处理和实体框架的处理代码进行对比,以便更容易学习理解实体框架里面,对各种数据库处理技巧,本篇介绍几种数据库操作的代码,包括写入中间表操作.联合中间表获取对象集合.递归操作.设置 ...
- iOS开发数据库篇—SQL代码应用示例
iOS开发数据库篇—SQL代码应用示例 一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在 ...
- 一个非常标准的Java连接Oracle数据库的示例代码
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\ ...
- Java连接Oracle数据库的示例代码
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径 ->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择 “D:\Oracle\ap ...
- LINUX安装SVN+添加自动同步+远程下载最新代码
LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...
随机推荐
- vue-devtools安装
https://www.cnblogs.com/yuqing6/p/7440549.html
- VMSAv8-64 translation table format descriptors
通常情况下,一个 descriptor 可能是以下的几种 entry: 非法或者异常的 entry. Table entry, 指向 next-level translation table. Blo ...
- valuestack 根对象CompoundRoot 源码
/* * Copyright 2002-2006,2009 The Apache Software Foundation. * * Licensed under the Apache License, ...
- 【转】Unity3D 入门小技巧——鼠标拾取并移动物体
http://blog.csdn.net/sysujackjiao/article/details/69396274 一.鼠标拾取物体的原理 在Unity3D当中,想要在观察面(Aspect)中拾取物 ...
- Mybatis通过接口实现一对一及一对多的查询
实现一对一是采用association方法: <resultMap type="testId" id="users"> <associatio ...
- 【bzoj1520】[POI2006]Szk-Schools 费用流
题目描述 输入 输出 如果有可行解, 输出最小代价,否则输出NIE. 样例输入 5 1 1 2 3 1 1 5 1 3 2 5 5 4 1 5 10 3 3 3 1 样例输出 9 题解 费用流 设xi ...
- [CQOI2015][bzoj3930] 选数 [杜教筛+莫比乌斯反演]
题面: 传送门 思路: 首先我们把区间缩小到$\left[\lfloor\frac{L-1}{K}\rfloor,\lfloor\frac{R}{K}\rfloor\right]$ 这道题的最特殊的点 ...
- BZOJ 4569 [Scoi2016]萌萌哒 ——ST表 并查集
好题. ST表又叫做稀疏表,这里利用了他的性质. 显然每一个条件可以分成n个条件,显然过不了. 然后发现有许多状态是重复的,首先考虑线段树,没什么卵用. 然后ST表,可以每一层表示对应的区间大小的两个 ...
- jQuery1.4与json格式兼容问题
原文发布时间为:2010-10-10 -- 来源于本人的百度文章 [由搬家工具导入] 原来使用jQuery1.3.2编写的代码,更换到1.4.2后,使用jQuery.ajax()加载的json文件,不 ...
- PE笔记之NT头PE文件头
typedef struct _IMAGE_FILE_HEADER { WORD Machine; //014C-IMAGE_FILE ...