flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-2111) Add "stop" signal to cleanly shutdown streaming jobs
Date Thu, 11 Feb 2016 12:53:18 GMT

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

ASF GitHub Bot commented on FLINK-2111:

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

    --- Diff: flink-core/src/main/java/org/apache/flink/api/common/functions/StoppableFunction.java
    @@ -0,0 +1,33 @@
    + * 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
implied. See the License for the
    + * specific language governing permissions and limitations under the License.
    + */
    +package org.apache.flink.api.common.functions;
    + * Must be implemented by stoppable functions, eg, source functions of streaming jobs.
The method {@link #stop()} will
    + * be called when the job received the STOP signal. On this signal, the source function
must stop emitting new data and
    + * terminate gracefully.
    + */
    +public interface StoppableFunction {
    +	/**
    +	 * Stops the source. In contrast to {@code cancel()} this is a request to the source
function to shut down
    +	 * gracefully. Pending data can still be emitted and it is not required to stop immediately
-- however, in the near
    +	 * future. The job will keep running until all emitted data is processed completely.
    +	 * <p>
    +	 * Most streaming sources will have a while loop inside the {@code run()} method. You
need to ensure that the source
    +	 * will break out of this loop. This can be achieved by having a volatile field "isRunning"
that is checked in the
    +	 * loop and that is set to false in this method.
    +	 * <p>
    +	 * <strong>The call to {@code stop()} should not block and not throw any exception.</strong>
    +	 */
    +	public void stop();
    --- End diff --
    interface methods are always public

> 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,
>            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

View raw message