private void handleExecutorNotAliveCase ( final Entry < Optional < Executor > , List < ExecutableFlow > > entry , final Executor executor , final ExecutorManagerException e ) { logger . error ( "Failed to get update from executor " + executor . getId ( ) , e ) ; this . executorFailureCount . put ( executor . getId ( ) , this . executorFailureCount . getOrDefault ( executor . getId ( ) , 0 ) + 1 ) ; if ( this . executorFailureCount . get ( executor . getId ( ) ) % this . executorMaxFailureCount == 0 && ! this . alertEmails . isEmpty ( ) ) { entry . getValue ( ) . stream ( ) . forEach ( flow -> flow . getExecutionOptions ( ) . setFailureEmails ( this . alertEmails ) ) ; logger . info ( String . format ( "Executor failure count is %d. Sending alert emails to %s." , this . executorFailureCount . get ( executor . getId ( ) ) , this . alertEmails ) ) ; this . alerterHolder . get ( "email" ) . alertOnFailedUpdate ( executor , entry . getValue ( ) , e ) ; } }
Increments executor failure count . If it reaches max failure count sends alert emails to AZ admin .