Threads — Specifies that all steps after this node are processed asynchronously


The Threads pattern specifies that the nodes after it in the route are processed asynchronously. This means that the route can use multiple threads to process messages and that the client will not wait for a reply.

The Threads pattern can be used anywhere in the body of a route.


Table 121 describes the properties you can specify using the properties editor.

Table 121. Threads Properties

Allow Core Thread Time OutSpecifies whether idle core threads are allowed to time out, therefore possibly shrinking the size of the thread pool below the size of the core pool. The default is Disabled.
Caller Runs When RejectedSpecifies whether tasks rejected by the thread pool are executed by the calling thread. The default is Disabled.
DescriptionSpecifies a text description for the node. This description is included in the generated XML file, but it is informational only. It is not used by Apache Camel.
Executor Service RefSpecifies a reference for looking up the executorService to use for thread pool management.

Specifies a unique identifier for the endpoint.

The tooling automatically generates an id for a node when it is created, but you can remove that id or replace it with your own. The Camel debugger requires all nodes with a breakpoint set to have a unique id.

You can use the id to refer to endpoints in your Camel XML file.

Keep Alive TimeSpecifies the amount of time a thread can be idle before it is reaped.
Max Pool SizeSpecifies the maximum size for the thread pool.
Max Queue SizeSpecifies the maximum size of the thread queue.
Pool SizeSpecifies the size of the core pool for the thread pool.
Rejected Policy

Specifies how tasks rejected by the thread pool are handled. Valid values are:

  • Abort—the handler throws a runtime RejectedExecutionException upon rejection.

  • CallerRuns—the thread that invokes execute itself runs the task.

  • DiscardOldest—the task at the head of the work queue is dropped, and then execution is retried.

  • Discard—the task that cannot be executed is dropped.

Thread NameSpecifies an expression, in the simple language, that is used to generate unique names for the threads used to process messages.
Time UnitSpecifies the unit of measure for timeout values.