public WorkerFactory()

in src/main/java/com/uber/cadence/worker/WorkerFactory.java [91:140]


  public WorkerFactory(WorkflowClient workflowClient, WorkerFactoryOptions factoryOptions) {
    this.workflowClient = Objects.requireNonNull(workflowClient);
    this.factoryOptions =
        MoreObjects.firstNonNull(factoryOptions, WorkerFactoryOptions.defaultInstance());

    workflowThreadPool =
        new ThreadPoolExecutor(
            0,
            this.factoryOptions.getMaxWorkflowThreadCount(),
            1,
            TimeUnit.SECONDS,
            new SynchronousQueue<>());
    workflowThreadPool.setThreadFactory(
        r -> new Thread(r, "workflow-thread-" + workflowThreadCounter.incrementAndGet()));

    if (this.factoryOptions.isDisableStickyExecution()) {
      return;
    }

    Scope stickyScope =
        workflowClient
            .getOptions()
            .getMetricsScope()
            .tagged(
                ImmutableMap.of(
                    MetricsTag.DOMAIN,
                    workflowClient.getOptions().getDomain(),
                    MetricsTag.TASK_LIST,
                    STICKY_TASK_LIST_METRIC_TAG));

    this.cache = new DeciderCache(this.factoryOptions.getCacheMaximumSize(), stickyScope);
    dispatcher = new PollDecisionTaskDispatcher(workflowClient.getService());
    stickyPoller =
        new Poller<>(
            workflowClient.getOptions().getIdentity(),
            new WorkflowPollTaskFactory(
                    workflowClient.getService(),
                    workflowClient.getOptions().getDomain(),
                    getStickyTaskListName(),
                    TaskListKind.TASK_LIST_KIND_STICKY,
                    stickyScope,
                    workflowClient.getOptions().getIdentity())
                .get(),
            dispatcher,
            PollerOptions.newBuilder()
                .setPollThreadNamePrefix(POLL_THREAD_NAME)
                .setPollThreadCount(this.factoryOptions.getStickyPollerCount())
                .build(),
            stickyScope);
  }