Github user revans2 commented on a diff in the pull request: https://github.com/apache/storm/pull/2319#discussion_r138074783 --- Diff: storm-core/src/clj/org/apache/storm/daemon/worker.clj --- @@ -47,9 +48,30 @@ (defmulti mk-suicide-fn cluster-mode) +(defn get-local-assignment + [conf storm-id cluster-state] + (try + (let [supervisor-cli (SupervisorClient/getConfiguredClient conf (memoized-local-hostname)) + assignment (converter/clojurify-assignment (.getLocalAssignmentForStorm (.getClient supervisor-cli) storm-id))] + (try + (.close supervisor-cli) + (catch Throwable e + (log-warn (.getMessage e) "Exception when close supervisor client."))) + assignment) + (catch Throwable e + ;; if any error/exception thrown, fetch it from zookeeper + (.remote-assignment-info cluster-state storm-id) + ))) + (defn read-worker-executors [storm-conf storm-cluster-state storm-id assignment-id port assignment-versions] (log-message "Reading Assignments.") - (let [assignment (:executor->node+port (.assignment-info storm-cluster-state storm-id nil))] + ;; TODO: keep a long time connection when worker need more heart beat to supervisor. --- End diff -- Another TODO
---