We assume that you have already learned what is described in:
If you want to find the right Other component for your purposes, see Others Comparison.
SpeedLimiter slows down data records going through it.
Component | Same input metadata | Sorted inputs | Inputs | Outputs | Each to all outputs1) | Java | CTL |
---|---|---|---|---|---|---|---|
SpeedLimiter | - | no | 1 | 1-n | yes | no | no |
1) Component sends each data record to all connected output ports.
SpeedLimiter receives data records through its single input port, delays each input record by a specified number of milliseconds and copies each input record to all connected output ports. Total delay does not depend on the number of output ports. It only depends on the number of input records.
Port type | Number | Required | Description | Metadata |
---|---|---|---|---|
Input | 0 | yes | For input data records | Any |
Output | 0 | yes | For copied data records | Input 01) |
1-n | no | For copied data records | Input 01) |
Legend:
1): Unlike in SimpleCopy, metadata on the output must be the same as those on the input. All metadata must be the same. Metadata can be propagated through this component.
Attribute | Req | Description | Possible values |
---|---|---|---|
Basic | |||
Delay | yes | Delay of processing each input record in milliseconds. Total delay of parsing is equal to the this value multiplicated by the number of input records. | 0-N |
When using Speedlimiter, do not forget records are sent out from the component only after its buffer gets full (by default). Sometimes you might need to:
send a record to Speedlimiter
have it delayed by a specified amount of seconds
send this very record to output ports immediately
In such case, you have to change settings of the edge outgoing from Speedlimiter to Direct fast propagate. See Types of Edges for more details.