Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)Target Signal Count | target-signal-count | 1 | | The number of signals that need to be in the cache (specified by the Release Signal Identifier) in order for the FlowFile processed by the Wait processor to be sent to the ‘success’ relationship. If the number of signals in the cache has reached this number, the FlowFile is routed to the 'success' relationship and the number of signals in the cache is decreased by this value. If Signal Counter Name is specified, this processor checks a particular counter, otherwise checks against the total number of signals in the cache. Supports Expression Language: true (will be evaluated using flow file attributes and variable registry) |
Signal Counter Name | signal-counter-name | | | Within the cache (specified by the Release Signal Identifier) the signals may belong to different counters. If this property is specified, the processor checks the number of signals in the cache that belong to this particular counter. If not specified, the processor checks the total number of signals in the cache. Supports Expression Language: true (will be evaluated using flow file attributes and variable registry) |
Wait Buffer Count | wait-buffer-count | 1 | | Specify the maximum number of incoming FlowFiles that can be buffered to check whether it can move forward. The more buffer can provide the better performance, as it reduces the number of interactions with cache service by grouping FlowFiles by signal identifier. Only a signal identifier can be processed at a processor execution. |
Releasable FlowFile Count | releasable-flowfile-count | 1 | | A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the releasable FlowFile count. This specifies how many FlowFiles can be released when a target count reaches target signal count. Zero (0) has a special meaning, any number of FlowFiles can be released as long as signal count matches target. Supports Expression Language: true (will be evaluated using flow file attributes and variable registry) |
Expiration Duration | expiration-duration | 10 min | | Indicates the duration after which waiting FlowFiles will be routed to the 'expired' relationship |
Distributed Cache Service | distributed-cache-service | | Controller Service API: AtomicDistributedMapCacheClient Implementations: RedisDistributedMapCacheClientService HazelcastMapCacheClient DistributedMapCacheClientService HBase_1_1_2_ClientMapCacheService HBase_2_ClientMapCacheService CouchbaseMapCacheClient | The Controller Service that is used to check for release signals from a corresponding Notify processor |
Attribute Copy Mode | attribute-copy-mode | Keep original | - Replace if present
- Keep original
| Specifies how to handle attributes copied from FlowFiles entering the Notify processor |
Wait Mode | wait-mode | Transfer to wait relationship | - Transfer to wait relationship
- Keep in the upstream connection
| Specifies how to handle a FlowFile waiting for a notify signal |
Wait Penalty Duration | wait-penalty-duration | | | If configured, after a signal identifier got processed but did not meet the release criteria, the signal identifier is penalized and FlowFiles having the signal identifier will not be processed again for the specified period of time, so that the signal identifier will not block others to be processed. This can be useful for use cases where a Wait processor is expected to process multiple signal identifiers, and each signal identifier has multiple FlowFiles, and also the order of releasing FlowFiles is important within a signal identifier. The FlowFile order can be configured with Prioritizers. IMPORTANT: There is a limitation of number of queued signals can be processed, and Wait processor may not be able to check all queued signal ids. See additional details for the best practice. |
Relationships:
Name | Description |
---|
expired | A FlowFile that has exceeded the configured Expiration Duration will be routed to this relationship |
success | A FlowFile with a matching release signal in the cache will be routed to this relationship |
wait | A FlowFile with no matching release signal in the cache will be routed to this relationship |
failure | When the cache cannot be reached, or if the Release Signal Identifier evaluates to null or empty, FlowFiles will be routed to this relationship |
Reads Attributes:
None specified.Writes Attributes:
Name | Description |
---|
wait.start.timestamp | All FlowFiles will have an attribute 'wait.start.timestamp', which sets the initial epoch timestamp when the file first entered this processor. This is used to determine the expiration time of the FlowFile. This attribute is not written when the FlowFile is transferred to failure, expired or success |
wait.counter.<counterName> | The name of each counter for which at least one signal has been present in the cache since the last time the cache was empty gets copied to the current FlowFile as an attribute. |
State management:
This component does not store state.Restricted:
This component is not restricted.Input requirement:
This component requires an incoming relationship.System Resource Considerations:
None specified.See Also:
DistributedMapCacheClientService, DistributedMapCacheServer, Notify