[
https://issues.apache.org/jira/browse/FLINK-1984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15426352#comment-15426352
]
ASF GitHub Bot commented on FLINK-1984:
---------------------------------------
Github user mxm commented on a diff in the pull request:
https://github.com/apache/flink/pull/2315#discussion_r75297945
--- Diff:
flink-mesos/src/main/scala/org/apache/flink/mesos/scheduler/ConnectionMonitor.scala
---
@@ -0,0 +1,126 @@
+/*
+ * 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.mesos.scheduler
+
+import akka.actor.{Actor, FSM, Props}
+import grizzled.slf4j.Logger
+import org.apache.flink.configuration.Configuration
+import org.apache.flink.mesos.scheduler.ConnectionMonitor._
+import org.apache.flink.mesos.scheduler.messages._
+
+import scala.concurrent.duration._
+
+/**
+ * Actively monitors the Mesos connection.
+ */
+class ConnectionMonitor() extends Actor with FSM[FsmState, Unit] {
+
+ val LOG = Logger(getClass)
+
+ startWith(StoppedState, None)
+
+ when(StoppedState) {
+ case Event(msg: Start, _) =>
+ LOG.info(s"Connecting to Mesos...")
+ goto(ConnectingState)
+ }
+
+ when(ConnectingState, stateTimeout = CONNECT_RETRY_RATE) {
+ case Event(msg: Stop, _) =>
+ goto(StoppedState)
+
+ case Event(msg: Registered, _) =>
+ LOG.info(s"Connected to Mesos as framework ID
${msg.frameworkId.getValue}.")
+ LOG.debug(s" Master Info: ${msg.masterInfo}")
+ goto(ConnectedState)
+
+ case Event(msg: ReRegistered, _) =>
+ LOG.info("Reconnected to a new Mesos master.")
+ LOG.debug(s" Master Info: ${msg.masterInfo}")
+ goto(ConnectedState)
+
+ case Event(StateTimeout, _) =>
+ LOG.warn("Unable to connect to Mesos; still trying...")
+ stay()
+ }
+
+ when(ConnectedState) {
+ case Event(msg: Stop, _) =>
+ goto(StoppedState)
+
+ case Event(msg: Disconnected, _) =>
+ LOG.warn("Disconnected from the Mesos master. Reconnecting...")
+ goto(ConnectingState)
+ }
+
--- End diff --
Would it make sense to add a `whenUnhandled {...}` handler here?
> Integrate Flink with Apache Mesos
> ---------------------------------
>
> Key: FLINK-1984
> URL: https://issues.apache.org/jira/browse/FLINK-1984
> Project: Flink
> Issue Type: New Feature
> Components: Cluster Management
> Reporter: Robert Metzger
> Assignee: Eron Wright
> Priority: Minor
> Attachments: 251.patch
>
>
> There are some users asking for an integration of Flink into Mesos.
> -There also is a pending pull request for adding Mesos support for Flink-:
> https://github.com/apache/flink/pull/251
> Update (May '16): a new effort is now underway, building on the recent
> ResourceManager work.
> Design document: ([google
> doc|https://docs.google.com/document/d/1WItafBmGbjlaBbP8Of5PAFOH9GUJQxf5S4hjEuPchuU/edit?usp=sharing])
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)