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

ASF GitHub Bot commented on FLINK-4272:
---------------------------------------

Github user aljoscha commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2732#discussion_r87201308
  
    --- Diff: 
flink-core/src/main/java/org/apache/flink/api/common/JobClient.java ---
    @@ -0,0 +1,70 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.flink.api.common;
    +
    +import java.util.Map;
    +
    +/*
    + * An Flink job client interface to interact with running Flink jobs.
    + */
    +public interface JobClient {
    +
    +   /**
    +    * Gets the JobID associated with this JobClient.
    +    */
    +   JobID getJobID();
    +
    +   /**
    +    * Returns a boolean indicating whether the job execution has finished.
    +    */
    +   boolean hasFinished() throws Exception;
    +
    +   /**
    +    * Blocks until the result of the job execution is returned.
    +    */
    +   JobExecutionResult waitForResult() throws Exception;
    +
    +   /**
    +    * Gets the accumulator map of a running job.
    +    */
    +   Map<String, Object> getAccumulators() throws Exception;
    +
    +   /**
    +    * Cancels a running job.
    +    */
    +   void cancel() throws Exception;
    +
    +   /**
    +    * Stops a running job if the job supports stopping.
    +    */
    +   void stop() throws Exception;
    +
    +   /**
    +    * Adds a Runnable to this JobClient to be called
    +    * when the client is shut down. Runnables are called
    +    * in the order they are added.
    +    */
    +   void addFinalizer(Runnable finalizer) throws Exception;
    +
    +   /**
    +    * Runs finalization code to shutdown the client
    +    * and its dependencies.
    +    */
    +   void shutdown();
    --- End diff --
    
    Shutdown seems to be an internal implementation detail for the new 
finalizers. It should therefore not be in the public API, it event seems 
problematic to allow users to call it because it would prematurely call 
finalizers.


> Create a JobClient for job control and monitoring 
> --------------------------------------------------
>
>                 Key: FLINK-4272
>                 URL: https://issues.apache.org/jira/browse/FLINK-4272
>             Project: Flink
>          Issue Type: New Feature
>          Components: Client
>            Reporter: Maximilian Michels
>            Assignee: Maximilian Michels
>            Priority: Minor
>             Fix For: 1.2.0
>
>
> The aim of this new features is to expose a client to the user which allows 
> to cancel a running job, retrieve accumulators for a running job, or perform 
> other actions in the future. Let's call it {{JobClient}} for now (although 
> this clashes with the existing JobClient class which could be renamed to 
> JobClientActorUtils instead).
> The new client should be returned from the {{ClusterClient}} class upon job 
> submission. The client should also be instantiatable by the users to retrieve 
> the JobClient with a JobID.
> We should expose the new JobClient to the Java and Scala APIs using a new 
> method on the {{ExecutionEnvironment}} / {{StreamExecutionEnvironment}} 
> called {{executeWithControl()}} (perhaps we can find a better name).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to