@Vitaly Here is a sample of my code
private void setupFeedUploadWorkflow() {
final WorkflowConfiguration config = // get config;
logger.info("Setting up feed workflow workers with following config : {}", config);
// register worker for the main workflow
setupWorkflowWorker(FeedWorkflowImpl.class,
workflowTaskQueueName,
WorkerOptions.newBuilder()
.setMaxConcurrentWorkflowTaskExecutionSize(config.getWorkflowMaxConcurrentExecutionSize())
.setWorkflowPollThreadCount(config.getWorkflowPollThreadCount())
.build());
// register workflow for general feed activities
setupActivityWorker(activities,
workflowTaskQueueName, // TODO consider moving activities to new task queue
WorkerOptions.newBuilder()
.setMaxConcurrentActivityExecutionSize(config.getActivityMaxConcurrentExecutionSize())
.setActivityPollThreadCount(config.getActivityPollThreadCount())
.build());
}
/**
* Workflows are stateful. So you need a type to create instances.
*/
private void setupWorkflowWorker(final Class<?> workflow,
final String taskQueueName,
final WorkerOptions options) {
final Worker worker = workerFactory.newWorker(taskQueueName, options);
worker.registerWorkflowImplementationTypes(workflow);
}
/**
* Activities are stateless and thread safe. So a shared instance is used.
*/
private void setupActivityWorker(final Object activity,
final String taskQueueName,
final WorkerOptions options) {
final Worker worker = workerFactory.newWorker(taskQueueName, options);
worker.registerActivitiesImplementations(activity);
}