public boolean canSpawnWorkers(){
  boolean canSpawnWorker=false;
  if (verboseLogLevel > 5) {
    Utilities.verboseLog("canSpawnWorkers - gridName: " + gridName + " tier : "+ tier+ " maxTierDepth: "+ maxTierDepth+ " lifeRemaing: "+ lifeRemaining()+ " maximumLifeMillis: "+ maximumLifeMillis);
  }
  if (!gridName.equals("lsf")) {
    return false;
  }
  if (clusterState != null) {
    Long timeSinceClusterLastUpdatedClusterState=System.currentTimeMillis() - clusterState.getLastUpdated();
    Utilities.verboseLog("timeSinceClusterLastUpdatedClusterState: " + timeSinceClusterLastUpdatedClusterState);
    if (timeSinceClusterLastUpdatedClusterState > 2 * gridCheckInterval * 1000) {
      Utilities.verboseLog("ClusterState is not uptodate:" + clusterState.toString());
      return false;
    }
  }
 else {
    return false;
  }
  if (tier == maxTierDepth) {
    return false;
  }
  if (lifeRemaining() < (maximumLifeMillis * 0.25)) {
    return false;
  }
switch (tier) {
case 1:
    canSpawnWorker=true;
  break;
case 2:
canSpawnWorker=true;
break;
case 3:
canSpawnWorker=true;
break;
case 4:
canSpawnWorker=true;
break;
default :
if (gridThrottle) {
canSpawnWorker=false;
}
 else {
canSpawnWorker=true;
}
}
return canSpawnWorker;
}

public boolean canSpawnWorkers ( ) { boolean canSpawnWorker = false ; if ( verboseLogLevel > 5 ) { Utilities . verboseLog ( "canSpawnWorkers - gridName: " + gridName + " tier : " + tier + " maxTierDepth: " + maxTierDepth + " lifeRemaing: " + lifeRemaining ( ) + " maximumLifeMillis: " + maximumLifeMillis ) ; } if ( ! gridName . equals ( "lsf" ) ) { return false ; } if ( clusterState != null ) { Long timeSinceClusterLastUpdatedClusterState = System . currentTimeMillis ( ) - clusterState . getLastUpdated ( ) ; Utilities . verboseLog ( "timeSinceClusterLastUpdatedClusterState: " + timeSinceClusterLastUpdatedClusterState ) ; if ( timeSinceClusterLastUpdatedClusterState > 2 * gridCheckInterval * 1000 ) { Utilities . verboseLog ( "ClusterState is not uptodate:" + clusterState . toString ( ) ) ; return false ; } } else { return false ; } if ( tier == maxTierDepth ) { return false ; } if ( lifeRemaining ( ) < ( maximumLifeMillis * 0.25 ) ) { return false ; } switch ( tier ) { case 1 : canSpawnWorker = true ; break ; case 2 : canSpawnWorker = true ; break ; case 3 : canSpawnWorker = true ; break ; case 4 : canSpawnWorker = true ; break ; default : if ( gridThrottle ) { canSpawnWorker = false ; } else { canSpawnWorker = true ; } } return canSpawnWorker ; }
check if this worker can spawn any worker
