Ok. Thanks for the clarification. But the controlling of savepoints is only possible by command line (or a script) ? Or is it possible to do internally in sync with application ?
From: Shuyi Chen <email@example.com>
Sent: Wednesday, May 30, 2018 8:18 AM
To: Esa Heikkinen <firstname.lastname@example.org>
Cc: Fabian Hueske <email@example.com>; firstname.lastname@example.org
Subject: Re: env.execute() ?
I think having more than one env.execute() is anti-pattern in Flink.
env.execute() behaves differently depending on the env. For local, it will generate the flink job graph, and start a local mini cluster in background to run the job graph directly.
For remote case, it will generate the flink job graph and submit it to a remote cluster, e.g. running on YARN/Mesos, the local process might stay attached or detach to the job on the remote cluster given options. So it's not a simple "unstoppable forever loop", and I dont think the "stop env.execute() and then do something and after that restart it" will work in general.
But I think you can take a look at savepoints  and checkpoints  in Flink. With savepoints, you can stop the running job, and do something else, and restart from the savepoints to resume the processing.
On Tue, May 29, 2018 at 3:56 AM, Esa Heikkinen <email@example.com> wrote:
Are there only one env.execute() in application ?
Is it unstoppable forever loop ?
Or can I stop env.execute() and then do something and after that restart it ?
It is mandatory for all DataStream programs and most DataSet programs.
Exceptions are ExecutionEnvironment.print() and ExecutionEnvironment.collect()
Both methods are defined on the DataSet ExecutionEnvironment and call execute() internally.
2018-05-29 12:31 GMT+02:00 Esa Heikkinen <firstname.lastname@example.org>
Is it env.execute() mandatory at the end of application ? It is possible to run the application without it ?
I found some examples where it is missing.
"So you have to trust that the dots will somehow connect in your future."