File tree Expand file tree Collapse file tree
tx-manager/src/main/java/com/codingapi/tx/manager/db/redis Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments