We are using a 3rd party library that allocates some resources in one of our topologies.
Is there a listener or something that gets notified when the topology starts / stops running in the Task Manager's JVM? The 3rd party library uses a singleton, so I need to initialize the singleton when the first task is started on the task manager and clear out the singleton when the last task is stopped in order to allow the topology classloader to be unloadable. I had thought it could all be done from the Topology's main method, but after much head-banging we were able to identify that *when run on a distributed cluster* the main method is not invoked to start the topology for each task manager. |
Currently the best I can see is to make *everything* a Rich... and hook into the open and close methods... but feels very ugly. On Mon 23 Sep 2019 at 15:45, Stephen Connolly <[hidden email]> wrote:
Sent from my phone
|
AFAIK, RichFunction is the only way you could take for this purpose. It's designed for life cycle management of functions. Regards, Dian
|
In reply to this post by Stephen Connolly
Hi Stephen, I think disposing static components in the closing stage of a task is required. This is because your code(operators/UDFs) is part of the task, namely that it can only be executed when the task is not disposed. Thanks, Zhu Zhu Stephen Connolly <[hidden email]> 于2019年9月24日周二 上午2:13写道:
|
I have created https://issues.apache.org/jira/browse/FLINK-14184 as a proposal to improve Flink in this specific area. On Tue, 24 Sep 2019 at 03:23, Zhu Zhu <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |