Ejemplo n.º 1
0
  private static UserDataServiceClient createUserDataServiceClientProxy(
      final ServiceBundle serviceBundle, final int numWorkers) {
    final ServiceWorkers userDataServiceWorkers = workers();

    for (int index = 0; index < numWorkers; index++) {
      ServiceQueue userDataService =
          serviceBuilder().setServiceObject(new UserDataService()).build();
      userDataService.startCallBackHandler();
      userDataServiceWorkers.addService(userDataService);
    }

    userDataServiceWorkers.start();

    serviceBundle.addServiceConsumer("workers", userDataServiceWorkers);

    return serviceBundle.createLocalProxy(UserDataServiceClient.class, "workers");
  }
Ejemplo n.º 2
0
  private static RecommendationServiceClient createRecommendationServiceClientProxy(
      final ServiceBundle serviceBundle,
      final UserDataServiceClient userDataServiceClient,
      int numWorkers) {

    final ServiceWorkers recommendationShardedWorkers = shardOnFirstArgumentWorkers();

    for (int index = 0; index < numWorkers; index++) {
      RecommendationService recommendationServiceImpl =
          new RecommendationService(userDataServiceClient);

      ServiceQueue serviceQueue =
          serviceBuilder().setServiceObject(recommendationServiceImpl).build();
      serviceQueue.startCallBackHandler();
      recommendationShardedWorkers.addService(serviceQueue);
    }

    recommendationShardedWorkers.start();

    serviceBundle.addServiceConsumer("recomendation", recommendationShardedWorkers);

    return serviceBundle.createLocalProxy(RecommendationServiceClient.class, "recomendation");
  }
Ejemplo n.º 3
0
  @Override
  public void onApplicationEvent(ContextRefreshedEvent event) {
    serviceQueueRegistry
        .getItems()
        .forEach(
            item -> {
              final ServiceQueue serviceQueue =
                  applicationContext.getBean(item.getKey(), ServiceQueue.class);

              if (clusteredEventManager != null
                  && (boolean) item.getValue().get("remoteEventListener")) {
                clusteredEventManager.joinService(serviceQueue);
              }

              if (serviceEndpointServer != null
                  && (boolean) item.getValue().get("exposeRemoteEndpoint")) {
                final String endpointLocation = (String) item.getValue().get("endpointLocation");
                logger.info(
                    AnsiOutput.toString(
                        "Registering endpoint: ", BOLD, GREEN, endpointLocation, NORMAL));
                serviceEndpointServer.addServiceQueue(endpointLocation, serviceQueue);

                logger.info("Starting service queue as part of endpoint {}", serviceQueue.name());
                serviceQueue.startServiceQueue();
              } else {
                logger.info("Starting service queue standalone {}", serviceQueue.name());
                serviceQueue.start();
                serviceQueue.startCallBackHandler();
              }
            });
    if (serviceEndpointServer != null) {
      serviceEndpointServer.start();
    }

    applicationContext.publishEvent(new QBitStartedEvent(applicationContext));
  }