Lucee Tag Reference
Tag <CFTHREAD>
The cfthread tag enables you to create threads, independent streams of code execution, in your application.
You use this tag to run or end a thread, temporarily stop thread execution, or join together multiple threads.
Body
This tag may have a body.
Example
<cfthread [action="string"] [duration="number"] [name="string"] [priority="string"] [retryinterval="any"] [timeout="number"] [type="string"] ... > [</cfthread>]
This tag is also supported within cfscript
<cfscript> thread [action="string"] [duration="number"] [name="string"] [priority="string"] [retryinterval="any"] [timeout="number"] [type="string"] ... { } </cfscript>
Attributes
This tag has a fixed definition of attributes (see below). In addition it allowes to use any additional attribute.
Name | Type | Required | Description |
---|---|---|---|
action | string | No | The action to take, one of the following values: or until the period specified in the timeout attribute passes, before continuing processing. If you don't specify a timeout and thread you are joining to doesn't finish, the current thread also cannot finish processing. This action is useful if one thread must wait for another thread to do processing without joining the threads. If you terminate a thread, the thread scope includes an ERROR metadata structure with information about the termination. |
duration | number | No | (sleep) The number of milliseconds for which to suspend thread processing. (required) |
name | string | No | The name of the thread to which the action applies: terminate The name of the thread to stop. join The name of the thread or threads to join to the current thread. To specify multiple threads, use a comma-delimited list. run The name to use to identify the thread being created. |
priority | string | No | The priority level at which to run the thread. The following values are valid: HIGH, LOW, NORMAL Higher priority threads get more processing time than lower priority threads. Page-level code, the code that is outside of cfthread tags, always has NORMAL priority. (optional, default=NORMAL) |
retryinterval | any | No | when type task, this attribute define a execution plan for additional tries of execution. you can define a single rule or multiple rules as array Example single rule: #{interval:createTimeSpan(0,0,0,5),tries:5}# in this case Lucee replay the thread for a maximum of 5 times, when the execution fails, Lucee waits for 5 seconds before doing the next try. Example multiple rules: #[{interval:createTimeSpan(0,0,0,5),tries:5},{interval:createTimeSpan(0,0,0,10),tries:5}]# in this case Lucee replay the thread for maximum of 10 times, when the execution fails, 5 times every 5 seconds, then 5 times every 10 seconds. |
timeout | number | No | The number of milliseconds that the current thread waits for the thread or threads being joined to finish. If any thread does not finish by the specified time, the current thread proceeds. If the attribute value is 0, the default, the current thread continues waiting until all joining threads finish. If the current thread is the page thread, the page continues waiting until the threads are joined, even if you specify a page timeout. (optional, default=0) |
type | string | No | type of the thread: - deamon (default): executes as deamon of the current thread - task: executed by the task manager |