Java源码示例:io.dropwizard.lifecycle.setup.LifecycleEnvironment

示例1
@Provides
@Singleton
GradingRequestPoller gradingRequestPoller(
        @Named("sealtiel") BasicAuthHeader sealtielClientAuthHeader,
        MessageService messageService,
        Provider<GradingWorker> workerFactory,
        LifecycleEnvironment lifecycleEnvironment) {

    ExecutorService executorService = lifecycleEnvironment.executorService("grading-worker-%d")
            .maxThreads(gradingConfig.getNumWorkerThreads())
            .minThreads(gradingConfig.getNumWorkerThreads())
            .build();

    return new GradingRequestPoller(
            executorService,
            sealtielClientAuthHeader,
            messageService,
            workerFactory);
}
 
示例2
@Provides
@Singleton
static GradingResponsePoller gradingResponsePoller(
        LifecycleEnvironment lifecycleEnvironment,
        @Named("sealtiel") BasicAuthHeader sealtielClientAuthHeader,
        MessageService messageService,
        GradingResponseProcessor processor) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("grading-response-processor-%d")
                    .maxThreads(10)
                    .minThreads(10)
                    .build();

    return new GradingResponsePoller(sealtielClientAuthHeader, messageService, executorService, processor);
}
 
示例3
@Provides
@Singleton
static GradingResponsePoller gradingResponsePoller(
        LifecycleEnvironment lifecycleEnvironment,
        @Named("sealtiel") BasicAuthHeader sealtielClientAuthHeader,
        MessageService messageService,
        GradingResponseProcessor processor) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("grading-response-processor-%d")
                    .maxThreads(10)
                    .minThreads(10)
                    .build();

    return new GradingResponsePoller(sealtielClientAuthHeader, messageService, executorService, processor);
}
 
示例4
@Test
public void testNewManagedCurator() {
    ZooKeeperConfiguration config = parse(ImmutableMap.of("retryPolicy",
            ImmutableMap.builder()
                    .put("type", "untilElapsed")
                    .put("maxElapsedTimeMs", 1000)
                    .put("sleepMsBetweenRetries", 50)
                    .build()));

    LifecycleEnvironment env = mock(LifecycleEnvironment.class);
    CuratorFramework curator = config.newManagedCurator(env);

    assertNotNull(curator);
    assertEquals(CuratorFrameworkState.LATENT, curator.getState());
    verify(env).manage(any(ManagedCuratorFramework.class));
}
 
示例5
@Provides
@Singleton
SubmissionRegrader submissionRegrader(
        LifecycleEnvironment lifecycleEnvironment,
        SubmissionStore submissionStore,
        SubmissionRegradeProcessor processor) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("submission-regrade-processor-%d")
                    .maxThreads(5)
                    .minThreads(5)
                    .build();

    return new SubmissionRegrader(submissionStore, executorService, processor);
}
 
示例6
@Provides
@Singleton
static ItemSubmissionRegrader itemSubmissionRegrader(
        LifecycleEnvironment lifecycleEnvironment,
        ItemSubmissionStore itemSubmissionStore,
        ItemSubmissionRegradeProcessor processor) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("item-submission-regrade-processor-%d")
                    .maxThreads(5)
                    .minThreads(5)
                    .build();

    return new ItemSubmissionRegrader(itemSubmissionStore, executorService, processor);
}
 
示例7
@Provides
@Singleton
SubmissionRegrader submissionRegrader(
        LifecycleEnvironment lifecycleEnvironment,
        SubmissionStore submissionStore,
        SubmissionRegradeProcessor processor) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("submission-regrade-processor-%d")
                    .maxThreads(5)
                    .minThreads(5)
                    .build();

    return new SubmissionRegrader(submissionStore, executorService, processor);
}
 
示例8
@Provides
@Singleton
static ItemSubmissionRegrader itemSubmissionRegrader(
        LifecycleEnvironment lifecycleEnvironment,
        ItemSubmissionStore itemSubmissionStore,
        ItemSubmissionRegradeProcessor processor) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("item-submission-regrade-processor-%d")
                    .maxThreads(5)
                    .minThreads(5)
                    .build();

    return new ItemSubmissionRegrader(itemSubmissionStore, executorService, processor);
}
 
示例9
@Provides
@Singleton
static ContestScoreboardPoller contestScoreboardPoller(
        UnitOfWorkAwareProxyFactory unitOfWorkAwareProxyFactory,
        LifecycleEnvironment lifecycleEnvironment,
        ContestStore contestStore,
        ContestGroupStore contestGroupStore,
        ContestScoreboardUpdater contestScoreboardUpdater,
        ContestGroupScoreboardUpdater contestGroupScoreboardUpdater) {

    ExecutorService executorService =
            lifecycleEnvironment.executorService("contest-scoreboard-updater-%d")
                    .maxThreads(2)
                    .minThreads(2)
                    .build();

    return unitOfWorkAwareProxyFactory.create(
            ContestScoreboardPoller.class,
            new Class<?>[] {
                    ContestStore.class,
                    ContestGroupStore.class,
                    ExecutorService.class,
                    ContestScoreboardUpdater.class,
                    ContestGroupScoreboardUpdater.class},
            new Object[] {
                    contestStore,
                    contestGroupStore,
                    executorService,
                    contestScoreboardUpdater,
                    contestGroupScoreboardUpdater});
}
 
示例10
@Provides
public LifecycleEnvironment lifecycleEnvironment() {
    return environment.lifecycle();
}
 
示例11
@Inject
public JudgelsScheduler(LifecycleEnvironment lifecycleEnvironment) {
    this.lifecycleEnvironment = lifecycleEnvironment;
}
 
示例12
public ExecutorBuilder(LifecycleEnvironment environment)
{
    this.environment = environment;
}
 
示例13
public static List<EventSender> build(
    final Environment environment,
    final CommonConfiguration<?> config,
    final MetricRegistry metricRegistry, final String pubsubHealthcheckTopic) {

  final List<EventSender> senders = new ArrayList<>();

  final KafkaClientProvider kafkaClientProvider =
      new KafkaClientProvider(config.getKafkaBrokers());

  final Optional<KafkaProducer<String, byte[]>> kafkaProducer =
      kafkaClientProvider.getDefaultProducer();

  kafkaProducer.ifPresent(producer -> senders.add(new KafkaSender(producer)));

  final LifecycleEnvironment lifecycle = environment.lifecycle();

  if (!config.getPubsubPrefixes().isEmpty()) {
    final PubSub pubsub = PubSubOptions.getDefaultInstance().getService();

    final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(
        new ThreadFactoryBuilder()
            .setDaemon(true)
            .setNameFormat("pubsub-healthchecker-%d")
            .build()
    );

    // choose an arbitrary prefix to use in the healthcheck. we assume if we can connect to
    // one we can connect to all
    final String topicToHealthcheck =
        config.getPubsubPrefixes().iterator().next() + pubsubHealthcheckTopic;

    final GooglePubSubSender.DefaultHealthChecker healthchecker =
        new GooglePubSubSender.DefaultHealthChecker(pubsub, topicToHealthcheck, executor,
            Duration.ofMinutes(5));

    metricRegistry.register("pubsub-health", (Gauge<Boolean>) healthchecker::isHealthy);

    for (final String prefix : config.getPubsubPrefixes()) {
      final GooglePubSubSender sender = GooglePubSubSender.create(pubsub, prefix, healthchecker);
      senders.add(sender);
    }

    lifecycle.manage(new ManagedPubSub(pubsub));
  }

  senders.forEach(lifecycle::manage);

  return senders;
}
 
示例14
/**
 * Return a managed Curator connection.  This created connection will be wrapped in a
 * {@link ManagedCuratorFramework} and offered to the provided {@link LifecycleEnvironment} parameter.
 */
public CuratorFramework newManagedCurator(LifecycleEnvironment env) {
    CuratorFramework curator = newCurator();
    env.manage(new ManagedCuratorFramework(curator));
    return curator;
}