當前位置: 首頁>>代碼示例>>Java>>正文


Java HystrixCommand類代碼示例

本文整理匯總了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);
    }
}
 
開發者ID:thinksky-sourcecode,項目名稱:microservices-prototype,代碼行數:24,代碼來源:DataService.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:13,代碼來源:AdministrativeServiceImpl.java

示例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;
}
 
開發者ID:mcwumbly,項目名稱:cats-and-dogs-scs,代碼行數:17,代碼來源:BackendClient.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:18,代碼來源:StoryServiceImpl.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:13,代碼來源:StoryServiceImpl.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:14,代碼來源:AdministrativeServiceImpl.java

示例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);
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:8,代碼來源:HotStoriesService.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:22,代碼來源:AdministrativeServiceImpl.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:25,代碼來源:AdministrativeServiceImpl.java

示例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;
}
 
開發者ID:nicolasmanic,項目名稱:Facegram,代碼行數:18,代碼來源:AdministrativeServiceImpl.java

示例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";
}
 
開發者ID:carycui,項目名稱:parkingcloud,代碼行數:11,代碼來源:UserController.java

示例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();
}
 
開發者ID:PacktPublishing,項目名稱:Learning-Spring-Boot-2.0-Second-Edition,代碼行數:11,代碼來源:CommentHelper.java

示例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();
}
 
開發者ID:kchrusciel,項目名稱:Spring-Boot-Examples,代碼行數:9,代碼來源:HystrixController.java


注:本文中的com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。