Add concurrency token request/release operation in TokenService
Signed-off-by: yunfeiyanggzq <yunfeiyang@buaa.edu.cn>
This commit is contained in:
parent
75f138821d
commit
473cc84262
|
|
@ -182,6 +182,15 @@ public class DefaultClusterTokenClient implements ClusterTokenClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TokenResult requestConcurrentToken(String clientAddress, Long ruleId, int acquireCount) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void releaseConcurrentToken(Long tokenId) {
|
||||||
|
}
|
||||||
|
|
||||||
private void logForResult(TokenResult result) {
|
private void logForResult(TokenResult result) {
|
||||||
switch (result.getStatus()) {
|
switch (result.getStatus()) {
|
||||||
case TokenResultStatus.NO_RULE_EXISTS:
|
case TokenResultStatus.NO_RULE_EXISTS:
|
||||||
|
|
|
||||||
|
|
@ -58,4 +58,13 @@ public class DefaultEmbeddedTokenServer implements EmbeddedClusterTokenServer {
|
||||||
}
|
}
|
||||||
return new TokenResult(TokenResultStatus.FAIL);
|
return new TokenResult(TokenResultStatus.FAIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TokenResult requestConcurrentToken(String clientAddress, Long ruleId, int acquireCount) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void releaseConcurrentToken(Long tokenId) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,14 +30,25 @@ public class TokenResult {
|
||||||
private int remaining;
|
private int remaining;
|
||||||
private int waitInMs;
|
private int waitInMs;
|
||||||
|
|
||||||
|
private long tokenId;
|
||||||
|
|
||||||
private Map<String, String> attachments;
|
private Map<String, String> attachments;
|
||||||
|
|
||||||
public TokenResult() {}
|
public TokenResult() {
|
||||||
|
}
|
||||||
|
|
||||||
public TokenResult(Integer status) {
|
public TokenResult(Integer status) {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getTokenId() {
|
||||||
|
return tokenId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTokenId(long tokenId) {
|
||||||
|
this.tokenId = tokenId;
|
||||||
|
}
|
||||||
|
|
||||||
public Integer getStatus() {
|
public Integer getStatus() {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
@ -77,10 +88,11 @@ public class TokenResult {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "TokenResult{" +
|
return "TokenResult{" +
|
||||||
"status=" + status +
|
"status=" + status +
|
||||||
", remaining=" + remaining +
|
", remaining=" + remaining +
|
||||||
", waitInMs=" + waitInMs +
|
", waitInMs=" + waitInMs +
|
||||||
", attachments=" + attachments +
|
", attachments=" + attachments +
|
||||||
'}';
|
", tokenId=" + tokenId +
|
||||||
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,15 @@ public final class TokenResultStatus {
|
||||||
* Token acquire failed (strategy not available).
|
* Token acquire failed (strategy not available).
|
||||||
*/
|
*/
|
||||||
public static final int NOT_AVAILABLE = 5;
|
public static final int NOT_AVAILABLE = 5;
|
||||||
|
/**
|
||||||
|
* Token is successfully released.
|
||||||
|
*/
|
||||||
|
public static final int RELEASE_OK = 6;
|
||||||
|
/**
|
||||||
|
* Token already is released before the request arrives.
|
||||||
|
*/
|
||||||
|
public static final int ALREADY_RELEASE=7;
|
||||||
|
|
||||||
private TokenResultStatus() {}
|
private TokenResultStatus() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,4 +44,20 @@ public interface TokenService {
|
||||||
* @return result of the token request
|
* @return result of the token request
|
||||||
*/
|
*/
|
||||||
TokenResult requestParamToken(Long ruleId, int acquireCount, Collection<Object> params);
|
TokenResult requestParamToken(Long ruleId, int acquireCount, Collection<Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request acquire concurrent tokens from remote token server.
|
||||||
|
*
|
||||||
|
* @param clientAddress the address of the request belong.
|
||||||
|
* @param ruleId ruleId the unique rule ID
|
||||||
|
* @param acquireCount token count to acquire
|
||||||
|
* @return result of the token request
|
||||||
|
*/
|
||||||
|
TokenResult requestConcurrentToken(String clientAddress,Long ruleId,int acquireCount);
|
||||||
|
/**
|
||||||
|
* Request release concurrent tokens from remote token server asynchronously.
|
||||||
|
*
|
||||||
|
* @param tokenId the unique token ID
|
||||||
|
*/
|
||||||
|
void releaseConcurrentToken(Long tokenId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue