1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.infra.instance;
19
20 import lombok.Getter;
21 import lombok.Setter;
22 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
23 import org.apache.shardingsphere.infra.state.instance.InstanceStateContext;
24 import org.apache.shardingsphere.infra.state.instance.InstanceState;
25
26 import java.util.Collection;
27 import java.util.LinkedList;
28
29
30
31
32 @Getter
33 public final class ComputeNodeInstance {
34
35 private final InstanceMetaData metaData;
36
37 private final InstanceStateContext state = new InstanceStateContext();
38
39 private Collection<String> labels = new LinkedList<>();
40
41 @Setter
42 private volatile int workerId;
43
44 public ComputeNodeInstance(final InstanceMetaData metaData) {
45 this.metaData = metaData;
46 workerId = -1;
47 }
48
49
50
51
52
53
54 public void setLabels(final Collection<String> labels) {
55 if (null != labels) {
56 this.labels = labels;
57 }
58 }
59
60
61
62
63
64
65 public void switchState(final String status) {
66 if (InstanceState.CIRCUIT_BREAK.name().equals(status)) {
67 state.switchToValidState(InstanceState.CIRCUIT_BREAK);
68 } else {
69 state.switchToInvalidState(InstanceState.CIRCUIT_BREAK);
70 }
71 }
72 }