Adds Hystrix SetterFactory to customize group and command keys#447
Merged
codefromthecrypt merged 1 commit intomasterfrom Aug 17, 2016
Merged
Adds Hystrix SetterFactory to customize group and command keys#447codefromthecrypt merged 1 commit intomasterfrom
codefromthecrypt merged 1 commit intomasterfrom
Conversation
This exposes means to customize group and command keys, for example to
use non-default conventions from configuration or custom annotation
processing.
Ex.
```java
SetterFactory commandKeyIsRequestLine = (target, method) -> {
String groupKey = target.name();
String commandKey = method.getAnnotation(RequestLine.class).value();
return HystrixCommand.Setter
.withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey))
.andCommandKey(HystrixCommandKey.Factory.asKey(commandKey));
};
api = HystrixFeign.builder()
.setterFactory(commandKeyIsRequestLine)
...
```
This also makes the default's more unique to avoid clashing in Hystrix's
cache.
ae18634 to
3e59697
Compare
|
I like this approach. Sorry for being dense about the confiKey approach, after reviewing the code, I see what you are saying now. +1 for this approach |
Contributor
Author
|
sweet. I can cut a release tomorrow. |
|
Great thanks! |
Contributor
|
Well done @adriancole! |
Contributor
Author
|
thx for the kind words, folks!
|
velo
pushed a commit
that referenced
this pull request
Oct 7, 2024
This exposes means to customize group and command keys, for example to
use non-default conventions from configuration or custom annotation
processing.
Ex.
```java
SetterFactory commandKeyIsRequestLine = (target, method) -> {
String groupKey = target.name();
String commandKey = method.getAnnotation(RequestLine.class).value();
return HystrixCommand.Setter
.withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey))
.andCommandKey(HystrixCommandKey.Factory.asKey(commandKey));
};
api = HystrixFeign.builder()
.setterFactory(commandKeyIsRequestLine)
...
```
This also makes the default's more unique to avoid clashing in Hystrix's
cache.
velo
pushed a commit
that referenced
this pull request
Oct 8, 2024
This exposes means to customize group and command keys, for example to
use non-default conventions from configuration or custom annotation
processing.
Ex.
```java
SetterFactory commandKeyIsRequestLine = (target, method) -> {
String groupKey = target.name();
String commandKey = method.getAnnotation(RequestLine.class).value();
return HystrixCommand.Setter
.withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey))
.andCommandKey(HystrixCommandKey.Factory.asKey(commandKey));
};
api = HystrixFeign.builder()
.setterFactory(commandKeyIsRequestLine)
...
```
This also makes the default's more unique to avoid clashing in Hystrix's
cache.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
By default, Hystrix group keys match the target name, and the target name is usually the base url. Hystrix command keys are now the same as logging keys, which are equivalent to javadoc references.
For example, for the canonical GitHub example...
You can use
HystrixFeign.Builder#setterFactory(SetterFactory)to customize this, for example, to read key mappings from configuration or annotations.Ex.
Fixes #334
Fixes #434
Fixes #333
Obviates #444