The 1.12.x
release added following changes based on the 1.11.x
release:
- Supported scaling up the number of threads for task polling and task processing independently. This helps to avoid hitting the hard limit of concurrent pollers per task list, as you can increase the task processing threads without increasing the polling threads.
- Allowed the number of task processing threads to dynamically change between 0 and a configured value. This feature is disabled by default, and you can turn it on by
setAllowCoreThreadTimeOut(true)
for the workflow/activity workers. - Removed the
setTaskExecutorThreadPoolSize()
andgetTaskExecutorThreadPoolSize()
methods fromGenericActivityWorker
andActivityWorker
. To configure the polling thread count and task execution thread count for your activity worker, please usesetExecuteThreadCount()
andgetExecuteThreadCount()
instead. - Removed the
SpringGracefulShutdownActivityWorker
andSpringGracefulShutdownWorkflowWorker
classes. TheSpringActivityWorker
andSpringWorkflowWorker
have the graceful shutdown logic in themselves. - Supported
SimpleWorkflowClientConfig
for tuning HTTP request timeouts of SWF APIs. - Improved the retry policy during worker startup to avoid startup failure due to
RegisterActivityType
andRegisterWorkflowType
throttling. - Truncated stack trace to comply with the length limit of the
details
field in theRespondActivityTaskFailed
API. Since thedetails
field has a maximum length of 32768, SWF will return 400s if the original exception has a large stack trace. This change truncates the stack trace in case of detail length exceeded, by preserving the first stack trace element and logging the original stack trace. - Upgraded the Jackson dependencies to 2.13.x. We've received customer reports that Jackson upgrade can trigger deserialization error (for certain data types) in their workflows. To make it smooth, you'll need to bump up your workflow type accordingly and let old workflow executions drain out. Essentially you should use the same deployment strategy (e.g., have two fleets running two versions of workflows) as what you do for a workflow logic change.