How to have Activity options configurable?

something like this

not really, so your workflow impl would just execute a local activity, something like:

FetchOptionsActivity fetchOptionsActivity =
        Workflow.newLocalActivityStub(
            FetchOptionsActivity.class,
            LocalActivityOptions.newBuilder()
                .setStartToCloseTimeout(Duration.ofSeconds(2))
                .build());
// ...
MyActivityOptions myActivityOptions = fetchOptionsActivity.getOptions();
// use myActivityOptions now to create activity stubs

and this local activity can be a Component that can return beans, something like:

@Component
@ActivityImpl(taskQueues = "myTaskQueue") // note for local activity this has to be same 
//task queue as what you define for you workflow impls  as local activities are executed
// as part of your workflow task
public class FetchOptionsActivityImpl implements FetchOptionsActivity {
   
   @Autowired MyActivityOptions options;

  @Override
  public MyActivityOptions getOptions() {
    return options;
  }
}
1 Like