Summary
Each processor has a Concurrent Tasks setting. This tells Clockspring how many parallel threads that processor is allowed to use. But increasing this number doesn’t guarantee the processor will actually get that many threads.
Clockspring has a global thread pool limit that caps how many threads the entire system can run at once.
You can see it here:
Hamburger Menu → Controller Settings → General → Maximum Timer Driven Thread Count
How these two settings interact
The key rule:
A processor can only use as many threads as the system has available, no matter what its Concurrent Tasks value is.
Example:
Global max threads: 10
Processor A: Concurrent Tasks 5
Processor B: Concurrent Tasks 5
Processor C: Concurrent Tasks 5
They collectively request 15, but the system will only run 10 at once.
One of those processors my sit idle until a thread frees up or processors will use less threads than configured.
This leads to common symptoms:
A processor set to 10 concurrent tasks only ever runs 2 or 3
Some processors appear “stalled”
High-throughput processors block lower-throughput ones
When to increase Concurrent Tasks
Use higher concurrency only when the processor can benefit from parallelism. Good fits:
InvokeHTTP hitting an API that supports parallel calls
SplitFlow → process fragments → JoinFlow patterns
Database writes using PutDatabaseRecord (if the target DB tolerates parallelism)
Note: Use MergeRecord before PutDatabaseRecord to group writes for efficiency
Bad fits:
Anything that hits a rate-limited API
Any processor that writes to a single file or resource that must remain serialized
Processes bound by a slow upstream source
When to increase the system thread count
You should only increase the global thread count if:
The host machine has enough CPU to handle more threads
Multiple processors need real parallel execution
You’ve confirmed the OS and JVM have enough headroom
If you raise Concurrent Tasks without raising the global thread pool, nothing changes.
Practical guideline
Start with Concurrent Tasks = 1 for most processors
Increase slowly and only when you actually see a bottleneck
Match the global thread pool to your expected parallel load, not the sum of all processor settings
Watch CPU. If you fully saturate it, the flow slows down anyway.
Quick test to see if you’re thread-limited
Set two or three processors to high Concurrent Tasks values
Start them at the same time
Watch the Active Threads indicator in the top-right of the UI
If it caps out at the global limit and stays flat, then you’re thread-bound.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article