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

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

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

    https://github.com/apache/flink/pull/750#discussion_r46284702
  
    --- Diff: 
flink-clients/src/main/java/org/apache/flink/client/CliFrontend.java ---
    @@ -569,6 +571,69 @@ public int compare(JobStatusMessage o1, 
JobStatusMessage o2) {
        }
     
        /**
    +    * Executes the STOP action.
    +    * 
    +    * @param args Command line arguments for the stop action.
    +    */
    +   protected int stop(String[] args) {
    +           LOG.info("Running 'stop' command.");
    +
    +           StopOptions options;
    +           try {
    +                   options = CliFrontendParser.parseStopCommand(args);
    +           }
    +           catch (CliArgsException e) {
    +                   return handleArgException(e);
    +           }
    +           catch (Throwable t) {
    +                   return handleError(t);
    +           }
    +
    +           // evaluate help flag
    +           if (options.isPrintHelp()) {
    +                   CliFrontendParser.printHelpForStop();
    +                   return 0;
    +           }
    +
    +           String[] stopArgs = options.getArgs();
    +           JobID jobId;
    +
    +           if (stopArgs.length > 0) {
    +                   String jobIdString = stopArgs[0];
    +                   try {
    +                           jobId = new 
JobID(StringUtils.hexStringToByte(jobIdString));
    +                   }
    +                   catch (Exception e) {
    +                           LOG.error("Error: The value for the Job ID is 
not a valid ID.");
    --- End diff --
    
    The thing is that `handleError` was introduced after the `cancel` method 
has been written. Thus at this time, it was not available, yet. So why should 
we keep the deficiencies of an old implementation if we could do it better? Of 
course, it would be nice to update `cancel` accordingly, but this is not part 
of this PR and should happen in a different PR.
    
    IMHO, it is better to ditch antiquated traditions if you're implementing a 
new function.


> Add "stop" signal to cleanly shutdown streaming jobs
> ----------------------------------------------------
>
>                 Key: FLINK-2111
>                 URL: https://issues.apache.org/jira/browse/FLINK-2111
>             Project: Flink
>          Issue Type: Improvement
>          Components: Distributed Runtime, JobManager, Local Runtime, 
> Streaming, TaskManager, Webfrontend
>            Reporter: Matthias J. Sax
>            Assignee: Matthias J. Sax
>            Priority: Minor
>
> Currently, streaming jobs can only be stopped using "cancel" command, what is 
> a "hard" stop with no clean shutdown.
> The new introduced "stop" signal, will only affect streaming source tasks 
> such that the sources can stop emitting data and shutdown cleanly, resulting 
> in a clean shutdown of the whole streaming job.
> This feature is a pre-requirment for 
> https://issues.apache.org/jira/browse/FLINK-1929



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

Reply via email to