Class SimulationMonitor

java.lang.Object
java.lang.Thread
fr.ifremer.isisfish.simulator.launcher.SimulationMonitor
All Implemented Interfaces:
Runnable

public class SimulationMonitor extends Thread
Moniteur singleton pour pouvoir sauvegarder localement la liste des simulations démarrées et permettre de continuer le monitoring au relancemenent d'Isis. Depuis la version 3.3, elle sauvegarde en plus les zip pour pouvoir relancer une simulation même si isis a été arreté entre temps. Cette classe n'implemente pas SimulationServiceListener car elle ne doit pas écouter toutes les simulations, mais seulement celle dit simple, c'est-à-dire "master plan" du plan d'analyse. Il faut bien faire attention lors du relancement des simulations a copier le zip a un autre endroit. Il est important d'avoir deux zip car celui de la sauvegarde est supprimé des que la simulation est arrete.
Since:
3.2.0.4
Version:
$Revision$ Last update : $Date$ By : $Author$
Author:
chatellier
  • Field Details

  • Constructor Details

    • SimulationMonitor

      protected SimulationMonitor()
      Constructeur.
  • Method Details

    • getInstance

      public static SimulationMonitor getInstance()
      Instance getter.
      Returns:
      instance
    • reloadConfig

      public void reloadConfig(SimulationService service)
      Reload config and read non simulation job into simulation service.
      Parameters:
      service - SimulationService
    • restartSimulationProgression

      protected void restartSimulationProgression(SimulationService service)
      Take all simulation in loaded file. And add it into simulation service.
    • restartSimulation

      protected void restartSimulation(SimulationService service, File simulationFolder, String simulationId, Properties propertiesFile) throws IOException
      Restart a single simulation.
      Parameters:
      service - simulation service
      simulationFolder - simulation information folder
      simulationId - simulation id
      propertiesFile - simulation properties file
      Throws:
      IOException
    • simulationStart

      public void simulationStart(SimulationJob job)
      Save simulation informations for started simulations.
      Parameters:
      job - started job
    • simulationStop

      public void simulationStop(SimulationJob job)
      Mark a simulation as stopped. Remove it from save file.
      Parameters:
      job - job that control the simulation
    • run

      public void run()
      Specified by:
      run in interface Runnable
      Overrides:
      run in class Thread
    • waitAndCheckProgression

      protected void waitAndCheckProgression()
      Wait a little time, and check for first simulation progression, if first simulation time is reached.
    • checkProgression

      protected boolean checkProgression(SimulationJob job, SimulatorLauncher launcher)
      Check progression.
      Parameters:
      job - job to check progression
      launcher - SimulatorLauncher that manage simulation
      Returns:
      true is simulation is finished, false otherwise
    • doPostSimulationOperation

      protected void doPostSimulationOperation(SimulationJob job, SimulatorLauncher launcher)
      Operation to do after simulation end.
      • get simulation result
      • do registred post actions
      • do sensitivity analisys second pass
      Parameters:
      job - job
      launcher - SimulatorLauncher that manage simulation
    • analyzeSensitivityResult

      protected void analyzeSensitivityResult(SimulationJob job, SimulationStorage simulation)
      For each finished simulation, check that all sensitivity simulation are available (in case of sensitivity simulation only).
      Parameters:
      job - job
      simulation - simulation
    • getNumberOfFinishedSimulation

      protected int getNumberOfFinishedSimulation(String asPrefixName, int numberOfSimulation)
      Parcourt le dossier de toutes les simulation commencant par le prefix donné, et retourne le nombre de simulation terminées.
      Parameters:
      asPrefixName - simulation name (without number suffix)
      numberOfSimulation - total simulation number
      Returns:
      le nombre de simulation réellement terminée
    • getStorageListForSecondPass

      protected List<SimulationStorage> getStorageListForSecondPass(String asPrefixName, int numberOfSimulation)
      Parcourt les dossiers et instancie les storages une fois qu'on est sur qu'on a toutes les simulations.
      Parameters:
      asPrefixName - simulation name (without number suffix)
      numberOfSimulation - total simulation number
      Returns:
      la liste des storages