mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed issue #1047 , support snapshot expire
This commit is contained in:
@@ -16,7 +16,7 @@ import com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaHistoryDO;
|
||||
* Created by wanshao Date: 2017/9/20 Time: 下午5:00
|
||||
**/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(locations = { "/tsdb/mysql-tsdb.xml" })
|
||||
@ContextConfiguration(locations = { "/tsdb/h2-tsdb.xml" })
|
||||
public class MetaHistoryDAOTest {
|
||||
|
||||
@Resource
|
||||
@@ -24,7 +24,22 @@ public class MetaHistoryDAOTest {
|
||||
|
||||
@Test
|
||||
public void testSimple() {
|
||||
List<MetaHistoryDO> metaHistoryDOList = metaHistoryDAO.findByTimestamp("test", 0L, 0L);
|
||||
MetaHistoryDO historyDO = new MetaHistoryDO();
|
||||
historyDO.setDestination("test");
|
||||
historyDO.setBinlogFile("000001");
|
||||
historyDO.setBinlogOffest(4L);
|
||||
historyDO.setBinlogMasterId("1");
|
||||
historyDO.setBinlogTimestamp(System.currentTimeMillis() - 7300 * 1000);
|
||||
historyDO.setSqlSchema("test");
|
||||
historyDO.setUseSchema("test");
|
||||
historyDO.setSqlTable("testTable");
|
||||
historyDO.setSqlTable("drop table testTable");
|
||||
metaHistoryDAO.insert(historyDO);
|
||||
|
||||
int count = metaHistoryDAO.deleteByTimestamp("test", 7200);
|
||||
System.out.println(count);
|
||||
|
||||
List<MetaHistoryDO> metaHistoryDOList = metaHistoryDAO.findByTimestamp("test", 0L, System.currentTimeMillis());
|
||||
for (MetaHistoryDO metaHistoryDO : metaHistoryDOList) {
|
||||
System.out.println(metaHistoryDO.getId());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.alibaba.otter.canal.parse.inbound.mysql.tsdb;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotDAO;
|
||||
import com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotDO;
|
||||
|
||||
/**
|
||||
* Created by wanshao Date: 2017/9/20 Time: 下午5:00
|
||||
**/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(locations = { "/tsdb/h2-tsdb.xml" })
|
||||
public class MetaSnapshotDAOTest {
|
||||
|
||||
@Resource
|
||||
MetaSnapshotDAO metaSnapshotDAO;
|
||||
|
||||
@Test
|
||||
public void testSimple() {
|
||||
MetaSnapshotDO metaSnapshotDO = new MetaSnapshotDO();
|
||||
metaSnapshotDO.setDestination("test");
|
||||
metaSnapshotDO.setBinlogFile("000001");
|
||||
metaSnapshotDO.setBinlogOffest(4L);
|
||||
metaSnapshotDO.setBinlogMasterId("1");
|
||||
metaSnapshotDO.setBinlogTimestamp(System.currentTimeMillis() - 7300 * 1000);
|
||||
metaSnapshotDO.setData("test");
|
||||
metaSnapshotDAO.insert(metaSnapshotDO);
|
||||
|
||||
MetaSnapshotDO snapshotDO = metaSnapshotDAO.findByTimestamp("test", System.currentTimeMillis());
|
||||
System.out.println(snapshotDO);
|
||||
|
||||
int count = metaSnapshotDAO.deleteByTimestamp("test", 7200);
|
||||
System.out.println(count);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -36,10 +36,10 @@
|
||||
</delete>
|
||||
|
||||
|
||||
<delete id="deleteByGmtModified" parameterClass="java.util.Map">
|
||||
<delete id="deleteByTimestamp" parameterClass="java.util.Map">
|
||||
<![CDATA[
|
||||
delete from meta_history
|
||||
where gmt_modified < timestamp(#timestamp#)
|
||||
where destination=#destination# and binlog_timestamp < #timestamp#
|
||||
]]>
|
||||
</delete>
|
||||
</sqlMap>
|
||||
@@ -54,10 +54,10 @@
|
||||
where destination=#destination#
|
||||
</delete>
|
||||
|
||||
<delete id="deleteByGmtModified" parameterClass="java.util.Map">
|
||||
<delete id="deleteByTimestamp" parameterClass="java.util.Map">
|
||||
<![CDATA[
|
||||
delete from meta_snapshot
|
||||
where gmt_modified < timestamp(#timestamp#)
|
||||
where destination=#destination# and binlog_timestamp < #timestamp# and binlog_timestamp > 0
|
||||
]]>
|
||||
</delete>
|
||||
</sqlMap>
|
||||
Reference in New Issue
Block a user