[
https://issues.apache.org/jira/browse/FLINK-26941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dian Fu reassigned FLINK-26941:
-------------------------------
Assignee: Yue Ma
> Support Pattern end with notFollowedBy with window
> --------------------------------------------------
>
> Key: FLINK-26941
> URL: https://issues.apache.org/jira/browse/FLINK-26941
> Project: Flink
> Issue Type: Improvement
> Components: Library / CEP
> Affects Versions: 1.14.4
> Reporter: Yue Ma
> Assignee: Yue Ma
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.14.4
>
>
> Currently a pattern sequence cannot end in notFollowedBy() in Flink CEP. But
> in fact, this requirement exists in many scenarios. As mentioned in the
> following tickets:
> https://issues.apache.org/jira/browse/FLINK-16010
> https://issues.apache.org/jira/browse/FLINK-9431
> Unfortunately, these tickets are not active for a long time.But we still
> think this is an important feature for Flink CEP, so we would like to share
> our implementation.
> If we want to find the users who created an order but didn't pay in 10
> minutes. We could code like this:
> {code:java}
> Pattern.begin('create').notFollowedBy('pay_order').withIn(10min){code}
> If we receive the create event but don't receive the pay event within 10
> minutes, then the match will be successful.
> The idea of implementation is basically the same as the design of FLINK-16010.
> A Pending State is introduced to represent the state of waiting for a
> timeout, and there is a take edge between the Pending node and the Stop node.
> When advanceTime, if it is found that the pending node has timed out, then
> extract the timeout sequence and output it normally as successed matched
> sequence.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)