You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "lincoln lee (Jira)" <ji...@apache.org> on 2022/10/04 06:09:00 UTC

[jira] [Commented] (FLINK-29498) Flink Async I/O Retry Strategies Do Not Work for Scala AsyncDataStream API

    [ https://issues.apache.org/jira/browse/FLINK-29498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612486#comment-17612486 ] 

lincoln lee commented on FLINK-29498:
-------------------------------------

[~eric.xiao] There's a separate `org.apache.flink.streaming.api.scala.async.AsyncRetryStrategy` for scala api usage, the java utilities can not be used directly in scala (by design). For your case, you can try to implement your own `AsyncRetryStrategy` to enable retries.

> Flink Async I/O Retry Strategies Do Not Work for Scala AsyncDataStream API
> --------------------------------------------------------------------------
>
>                 Key: FLINK-29498
>                 URL: https://issues.apache.org/jira/browse/FLINK-29498
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Scala
>    Affects Versions: 1.15.2
>            Reporter: Eric Xiao
>            Priority: Minor
>
> We are using the async I/O to make HTTP calls and one of the features we wanted to leverage was the retries, so we pulled the newest commit: [http://github.com/apache/flink/pull/19983] into our internal Flink fork.
> When I try calling the function {{AsyncDataStream.unorderedWaitWithRetry}} from the scala API I with a retry strategy from the java API I get an error as {{unorderedWaitWithRetry}} expects a scala retry strategy. The problem is that retry strategies were only implemented in java and not Scala in this PR: [http://github.com/apache/flink/pull/19983].
>  
> Here is some of the code to reproduce the error:
> {code:java}
> import org.apache.flink.streaming.api.scala.AsyncDataStream
> import org.apache.flink.streaming.util.retryable.{AsyncRetryStrategies => JAsyncRetryStrategies}
> val javaAsyncRetryStrategy = new JAsyncRetryStrategies.FixedDelayRetryStrategyBuilder[Int](3, 100L)
>     .build()
> val data = AsyncDataStream.unorderedWaitWithRetry(
>   source,
>   asyncOperator,
>   pipelineTimeoutInMs,
>   TimeUnit.MILLISECONDS,
>   javaAsyncRetryStrategy
> ){code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)