Skip to content

Commit d3f344f

Browse files
committed
Manager server info use Set
1 parent 0ac650a commit d3f344f

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.codingapi.tx.manager.db.redis;
2+
3+
import com.codingapi.tx.manager.config.TxManagerConfig;
4+
import com.codingapi.tx.manager.db.ManagerStorage;
5+
import lombok.extern.slf4j.Slf4j;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.beans.factory.annotation.Value;
8+
import org.springframework.data.redis.core.RedisTemplate;
9+
10+
import javax.annotation.PreDestroy;
11+
import java.util.ArrayList;
12+
import java.util.List;
13+
import java.util.Objects;
14+
15+
/**
16+
* Manager信息改用Set 暂未使用
17+
*
18+
* @author meetzy
19+
* @date 2019-01-14 11:09
20+
*/
21+
@Slf4j
22+
public class RedisSetManagerStorage implements ManagerStorage {
23+
24+
private static final String REDIS_PREFIX = "tx.manager.list";
25+
26+
@Autowired
27+
private RedisTemplate<String, String> redisTemplate;
28+
29+
@Autowired
30+
private TxManagerConfig managerConfig;
31+
32+
@Value("${server.port}")
33+
private int port;
34+
35+
@Override
36+
public List<String> addressList() {
37+
return new ArrayList<>(Objects.requireNonNull(redisTemplate.opsForSet().members(REDIS_PREFIX)));
38+
}
39+
40+
@Override
41+
public void remove(String address) {
42+
redisTemplate.opsForSet().remove(REDIS_PREFIX, address);
43+
}
44+
45+
@PreDestroy
46+
public void destroy() {
47+
String address = managerConfig.getHost() + ":" + port;
48+
remove(address);
49+
log.info("manager remove redis.");
50+
}
51+
}

0 commit comments

Comments
 (0)