本文整理匯總了Java中com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand類的典型用法代碼示例。如果您正苦於以下問題:Java HystrixCommand類的具體用法?Java HystrixCommand怎麽用?Java HystrixCommand使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
HystrixCommand類屬於com.netflix.hystrix.contrib.javanica.annotation包,在下文中一共展示了HystrixCommand類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: findByName
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
/**
* Fetch users with the specified name. A partial case-insensitive match is
* supported. So <code>http://.../user/rest</code> will find any users with
* upper or lower case 'rest' in their name.
*
* @param name
* @return A non-null, non-empty collection of users.
*/
@HystrixCommand(fallbackMethod = "defaultUsers")
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Collection<User>> findByName(@RequestParam("name") String name) {
logger.info(String.format("user-service findByName() invoked:%s for %s ", userService.getClass().getName(), name));
name = name.trim().toLowerCase();
Collection<User> users;
try {
users = userService.findByName(name);
} catch (Exception ex) {
logger.log(Level.SEVERE, "Exception raised findByName REST Call", ex);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
return users.size() > 0 ? new ResponseEntity<>(users, HttpStatus.OK)
: new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
開發者ID:PacktPublishing,項目名稱:Mastering-Microservices-with-Java-9-Second-Edition,代碼行數:24,代碼來源:UserController.java
示例2: findById
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
/**
* Fetch restaurants with the given id.
* <code>http://.../v1/restaurants/{restaurant_id}</code> will return
* restaurant with given id.
*
* @param id
* @return A non-null, non-empty collection of restaurants.
*/
@HystrixCommand(fallbackMethod = "defaultRestaurant")
@RequestMapping(value = "/{restaurant_id}", method = RequestMethod.GET)
public ResponseEntity<Entity> findById(@PathVariable("restaurant_id") String id) {
logger.info(String.format("restaurant-service findById() invoked:{} for {} ", restaurantService.getClass().getName(), id));
id = id.trim();
Entity restaurant;
try {
restaurant = restaurantService.findById(id);
} catch (Exception ex) {
logger.log(Level.WARNING, "Exception raised findById REST Call {0}", ex);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
return restaurant != null ? new ResponseEntity<>(restaurant, HttpStatus.OK)
: new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
開發者ID:PacktPublishing,項目名稱:Mastering-Microservices-with-Java-9-Second-Edition,代碼行數:24,代碼來源:RestaurantController.java
示例3: indexedData
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@HystrixCommand(fallbackMethod = HYSTRIX_FALL_BACK,
commandKey = HYSTRIX_COMMAND_KEY,
groupKey = HYSTRIX_GROUP_KEY)
@Scheduled(fixedDelay = 60000)
public void indexedData() {
log.info("SEARCH-SERVICE: Data indexer is starting to work.");
currentPageIndex = getCurrentPageIndex();
log.info("Current page for pushing is {}", currentPageIndex);
long totalPage = tweetClient.getTweets().getMetadata().getTotalPages();
for (long i = currentPageIndex; i <= totalPage; i++) {
Runnable task = new PusherProcessor(tweetRepository, tweetClient, i);
taskExecutor.execute(task);
currentPageIndex = i++;
saveCurrentPageIndex(i);
}
}
示例4: retrieveGroup
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@CachePut(cacheNames = "RetrieveGroup", key = "#groupId")
@HystrixCommand(fallbackMethod = "retrieveGroupFallback", ignoreExceptions = IllegalArgumentException.class)
public Group retrieveGroup(String groupId) {
Assert.hasLength(groupId, "retrieveGroup input is empty");
Group group = groupRepository.findOne(groupId);
if(group == null){
logger.warn("No group with id={} was found.", groupId);
return new Group();
}
return group;
}
示例5: cats
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@HystrixCommand(fallbackMethod = "dogs")
Message cats() {
URI uri = UriComponentsBuilder.fromUriString("//backend/cats")
.build()
.toUri();
Message message;
try {
message = rest.getForObject(uri, Message.class);
} catch (Exception e) {
log.error(e.getMessage());
throw e;
}
return message;
}
示例6: createStory
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@HystrixCommand(fallbackMethod = "fallbackCreateStory", ignoreExceptions = IllegalArgumentException.class)
public String createStory(String username, StoryRequest storyRequest) {
Assert.notNull(storyRequest, "createStory input is null");
Story story = new Story.Builder()
.userId(username)
.geolocation(storyRequest.getGeolocation())
.title(storyRequest.getTitle())
.story(storyRequest.getStory())
.groupId(storyRequest.getGroupId())
.build();
storyRepository.save(story);
return Constants.OK;
}
示例7: deleteStory
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@HystrixCommand(fallbackMethod = "fallbackDeleteStory", ignoreExceptions = IllegalArgumentException.class)
public String deleteStory(String storyId, String userId) {
Assert.hasLength(storyId, "deleteStory input was null or empty");
Story story = storyRepository.findById(storyId);
if(!userId.equals(story.getUserId()))
throw new UnauthorizedUserException("Unauthorized user for this action");
storyRepository.delete(storyId);
return Constants.OK;
}
示例8: retrieveGroupIds
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@CachePut(cacheNames = "RetrieveGroupIds", key = "#username")
@HystrixCommand(fallbackMethod = "retrieveGroupIdsFallback", ignoreExceptions = IllegalArgumentException.class)
public List<String> retrieveGroupIds(String username) {
Assert.hasLength(username, "retrieveGroupIds input is empty or null");
if (!userRepository.exists(username)) {
logger.warn("No user with id={} was found.", username);
return new ArrayList<>();
}
List<String> followingGroupIds = userRepository.getGroupIdsByUsername(username).getFollowingGroupIds();
return followingGroupIds;
}
示例9: getStoriesOfGroup
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@CachePut(cacheNames = "HotStoriesOfGroup", key = "#groupId")
@HystrixCommand(fallbackMethod = "hotStoriesOfGroupFallback", ignoreExceptions = IllegalArgumentException.class)
public List<Story> getStoriesOfGroup(String groupId) {
Assert.hasLength(groupId, "Hot stories of group input was null or empty");
return storyRepository.findHotStoriesOfGroup(groupId);
}
示例10: createUser
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@HystrixCommand(fallbackMethod = "createUserFallback", ignoreExceptions = IllegalArgumentException.class)
public String createUser(UserRequest userRequest) {
Assert.notNull(userRequest, "createUser input is null");
if (userRepository.exists(userRequest.getUsername())) {
logger.warn("User with id={} is already registered.", userRequest.getUsername());
return Constants.NOK;
}
authClient.createUser(generateRegistrationUser(userRequest));
User user = new User.Builder()
.gender(userRequest.getGender())
.name(userRequest.getName())
.surname(userRequest.getSurname())
.username(userRequest.getUsername())
.build();
userRepository.save(user);
return Constants.OK;
}
示例11: addFollowing
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@HystrixCommand(fallbackMethod = "addFollowingFallback", ignoreExceptions = IllegalArgumentException.class)
public String addFollowing(String username, String followingUsername) {
Assert.hasLength(followingUsername, "addFollowing input is empty");
User user = userRepository.findByUsername(username);
if (user == null) {
logger.warn("No user with id={} was found.", username);
return Constants.NOK;
}
if (!userRepository.exists(followingUsername)) {
logger.warn("No user with id={} was found", followingUsername);
return Constants.NOK;
}
if (user.getFollowingIds().contains(username)) {
logger.warn("User with id={} is already following {}", username, followingUsername);
return Constants.NOK;
}
user.addFollowingId(followingUsername);
userRepository.save(user);
return Constants.OK;
}
示例12: removeFollowing
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@Override
@HystrixCommand(fallbackMethod = "removeFollowingFallback", ignoreExceptions = IllegalArgumentException.class)
public String removeFollowing(String username, String followingUsername) {
Assert.hasLength(username, "removeFollowing input is empty or null");
Assert.hasLength(followingUsername, "removeFollowing input is empty or null");
User user = userRepository.findByUsername(username);
if (user == null) {
logger.warn("No user with id={} was found.", username);
return Constants.NOK;
}
user.removeFollowingId(followingUsername);
userRepository.save(user);
return Constants.OK;
}
示例13: test
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@HystrixCommand(fallbackMethod = "testFallback")
@GetMapping("/test/{v}")
public String test(@PathVariable("v") Long v){
try{
Thread.sleep(v);
}catch(Exception e){
}
return "normal test response";
}
示例14: getComments
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@HystrixCommand(fallbackMethod = "defaultComments")
public List<Comment> getComments(Image image) {
return restTemplate.exchange(
"http://COMMENTS/comments/{imageId}",
HttpMethod.GET,
null,
new ParameterizedTypeReference<List<Comment>>() {
},
image.getId()).getBody();
}
示例15: hystrixMethod
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; //導入依賴的package包/類
@HystrixCommand(fallbackMethod = "fallback")
@GetMapping
String hystrixMethod(){
if (RandomUtils.nextInt(10) > 5) {
return "Bingo!";
}
throw new RuntimeException();
}