ic4y commented on code in PR #4683:
URL:
https://github.com/apache/incubator-seatunnel/pull/4683#discussion_r1190753602
##########
seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/TaskExecutionService.java:
##########
@@ -455,6 +459,37 @@ private synchronized void updateMetricsContextInImap() {
contextMap.putAll(finishedExecutionContexts);
contextMap.putAll(executionContexts);
try {
+ ClusterState clusterState =
+
nodeEngine.getHazelcastInstance().getCluster().getClusterState();
+ if (clusterState != ClusterState.ACTIVE) {
+ logger.warning(
+ String.format(
+ "The cluster is not ready yet, cluster state
[%s], looking forward to the next "
+ + "scheduling",
+ clusterState));
+ return;
+ }
+ // Waiting for cluster startup to complete
+ if (waitClusterStarted == null) {
+ waitClusterStarted =
+ new CountDownLatch(
+
nodeEngine.getHazelcastInstance().getCluster().getMembers().size());
+ nodeEngine
+ .getHazelcastInstance()
+ .getLifecycleService()
+ .addLifecycleListener(
+ event -> {
+ if (event.getState() ==
LifecycleEvent.LifecycleState.STARTED) {
+ waitClusterStarted.countDown();
+ }
+ });
+ }
+ if (waitClusterStarted.getCount() > 0) {
+ logger.warning(
+ "The cluster is not ready yet, looking forward to the
next scheduling");
+ return;
+ }
+
Review Comment:
1、"Why is it necessary for all nodes to be STARTED? Isn't it enough to just
judge if the ClusterState is ACTIVE?"
2、"The getLifecycleService should obtain the LifecycleListener of the
current instance, which should only receive the status change of the current
node. In a cluster mode, shouldn't the waitClusterStarted.getCount() always be
non-zero?"
<img width="667" alt="image"
src="https://github.com/apache/incubator-seatunnel/assets/83933160/6a09f69b-450b-429c-a17f-ab6b7a9f9a75">
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]