public class SimulationService extends Object
submit
.
Cette classe sert aussi de modele pour le moniteur de queue
Il existe une instance unique pour toute l'application
Lors de l'instanciation de la classe, l'ensemble des
SimulatorLauncher
disponible est recherche dans la configuration
et un executor est cree pour chaque.
Si un SimulatorLauncher
genere trop d'erreur (RemoteException)
Il est alors suspendu pour ne plus etre utilise pour les simulations.
Modifier and Type | Field and Description |
---|---|
protected boolean |
autoLaunch |
protected Map<SimulatorLauncher,SimulationExecutor> |
executors
Tous les types de
SimulatorLauncher disponibles, et leur
executors associe |
protected Set<String> |
idJobs
Contient les identifiants des simulations presentes dans
jobs |
protected static SimulationService |
instance |
protected Set<SimulationJob> |
jobDones
La liste des jobs termines
|
protected Set<SimulationJob> |
jobs
La liste des jobs existant (queue + job demarre)
|
protected Map<SimulatorLauncher,org.apache.commons.lang3.mutable.MutableInt> |
launcherError
Le nombre d'erreur pour les SimulatorLauncher
|
protected org.nuiton.util.ListenerSet<SimulationServiceListener> |
listeners |
static int |
MAX_PLAN_SIMULATION
nombre maximal de simulation autoriser pour un plan
|
protected PropertyChangeSupport |
propertyListeners |
protected SimulationQueue |
queue
La queue contenant toutes les simulations a faire
|
static String |
SIMULATION_LAUNCHER |
protected ExecutorService |
subSimulationComputationExecutor
L'executor utilise pour creer toutes les sous simulations des plans
independants
|
Modifier | Constructor and Description |
---|---|
protected |
SimulationService()
Cree une instance et initialise les executors ainsi que le launcherError
|
Modifier and Type | Method and Description |
---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener) |
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) |
void |
addSimulationLauncher(SimulatorLauncher sl)
Permet d'ajouter un nouveau SimulatorLauncher.
|
void |
addSimulationServiceListener(SimulationServiceListener l) |
protected boolean |
cancel(SimulationJob job)
Supprime un job de la queue (annulation d'une simulation).
|
void |
clearJobDone()
Nettoie la liste des jobs faits
|
protected void |
compileAllFile(SimulationControl control,
File directory)
Compile les fichiers présent dans le répertoire passé en
parametre, ce répertoire est hiérarchisé en: rules, exports, simulators
et scripts.
|
boolean |
exists(String id) |
protected void |
fillDesignPlanNominalValue(org.nuiton.topia.TopiaContext context,
DesignPlan designPlan)
Explore design plan factor tree, and set factor nominal value
for each factor.
|
protected void |
fireStartEvent(SimulationJob job)
Ajoute le job au job en cours previent s'il n'etait pas deja present
les listeners
SimulationServiceListener.simulationStart(SimulationService, SimulationJob) . |
protected void |
fireStopEvent(SimulationJob job)
Supprime le job de la liste des jobs en cours et l'ajoute le job si
besoin a la liste des jobs faits (s'il y a une erreur ou qu'il ne sagit
pas d'une simulation lancer par un plan de simulation).
|
Set<SimulationJob> |
getJobDones() |
Set<SimulationJob> |
getJobs() |
static SimulationService |
getService()
Retourne l'instance du
SimulationService a utiliser |
Collection<SimulationExecutor> |
getSimulationExecutors() |
List<SimulatorLauncher> |
getSimulationLaunchers()
Retour les lanceurs ayant un executor.
|
protected Set<SimulatorLauncher> |
getSimulatorLaunchers()
Retourne la liste de tous les
SimulatorLauncher disponible. |
boolean |
isAutoLaunch() |
File |
prepareSimulationZipFile(SimulationParameter param,
File outputZilFile,
SimulationControl control,
String xmlDesignPlan,
SensitivityScenarios sensitivityScenarios)
Prepare les fichiers qui seront utilsé à la simulation:
scripts
rules
resultinfos
exports
simulators
optimisations
objectives
export de la database de la region
simultionplan
Le tout est zippé et le zip est retourné, il peut-être directement
importé dans le
SimulationStorage (en le renommant comme
il faut SimulationStorage.importAndRenameZip(File, String) . |
void |
removePropertyChangeListener(PropertyChangeListener listener) |
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) |
void |
removeSimulationServiceListener(SimulationServiceListener l) |
protected void |
reportError(SimulatorLauncher launcher,
SimulationJob job)
This method must be call in thread simulation
Report une erreur pour un launcher, on resoumet le job en supprimant
le launcher utilise
|
void |
restart(SimulationJob job)
Restart a job.
|
protected void |
resubmit(SimulationJob job)
Permet de resoumettre un job qui a ete pris par un thread mais qu'il
ne peut pas traiter.
|
void |
setAutoLaunch(boolean autoLaunch) |
protected void |
submit(SimulationJob job) |
void |
submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority)
Permet d'ajouter une nouvelle simulation a la queue.
|
void |
submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority,
SensitivityAnalysis sensitivityAnalysis,
DesignPlan designPlan)
Permet d'ajouter une simulation avec des factors a prendre en compte.
|
void |
submitForCheckOnly(SimulationJob job)
Resoumet une simulation qui a deja été démarrée, mais
on ne faisant que du control de monitoring.
|
protected void |
submitSubJob(SimulationJob job)
Permet de soumettre a la queue un job provenant d'un plan.
|
protected void |
waitAutoLaunch(SimulationJob job)
Permet de mettre en attente les threads de simulation si l'utilisateur
a suspendu la queue
|
public static final String SIMULATION_LAUNCHER
public static final int MAX_PLAN_SIMULATION
protected static SimulationService instance
protected PropertyChangeSupport propertyListeners
protected org.nuiton.util.ListenerSet<SimulationServiceListener> listeners
protected boolean autoLaunch
protected ExecutorService subSimulationComputationExecutor
protected Map<SimulatorLauncher,SimulationExecutor> executors
SimulatorLauncher
disponibles, et leur
executors associeprotected Map<SimulatorLauncher,org.apache.commons.lang3.mutable.MutableInt> launcherError
protected SimulationQueue queue
protected Set<SimulationJob> jobs
protected Set<SimulationJob> jobDones
protected SimulationService()
public static SimulationService getService()
SimulationService
a utiliserpublic void addSimulationLauncher(SimulatorLauncher sl)
sl
- le SimulatorLauncher a ajouterpublic List<SimulatorLauncher> getSimulationLaunchers()
public Collection<SimulationExecutor> getSimulationExecutors()
public Set<SimulationJob> getJobs()
public Set<SimulationJob> getJobDones()
protected Set<SimulatorLauncher> getSimulatorLaunchers()
SimulatorLauncher
disponible.SimulatorLauncher
spublic void addSimulationServiceListener(SimulationServiceListener l)
public void removeSimulationServiceListener(SimulationServiceListener l)
public void addPropertyChangeListener(PropertyChangeListener listener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
public void removePropertyChangeListener(PropertyChangeListener listener)
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
protected void fireStartEvent(SimulationJob job)
SimulationServiceListener.simulationStart(SimulationService, SimulationJob)
.job
- protected void fireStopEvent(SimulationJob job)
SimulationServiceListener.simulationStop(SimulationService, SimulationJob)
.job
- public void clearJobDone()
public boolean isAutoLaunch()
public void setAutoLaunch(boolean autoLaunch)
autoLaunch
- The autoLaunch to set.protected void waitAutoLaunch(SimulationJob job)
job
- le job pour lequel on vu savoir s'il faut l'executer ou nonpublic void submit(String id, SimulationParameter param, SimulatorLauncher launcher, int priority)
id
- l'identifiant de la simulationparam
- les parametres de la simulationlauncher
- le launcher a utiliser pour lancer la simulationpriority
- la priorite de la simulationpublic void submit(String id, SimulationParameter param, SimulatorLauncher launcher, int priority, SensitivityAnalysis sensitivityAnalysis, DesignPlan designPlan)
id
- l'identifiant de la simulationparam
- les parametres de la simulationlauncher
- le launcher a utiliser pour lancer la simulationpriority
- la priorite de la simulationsensitivityAnalysis
- l'implementation du calculateur de sensibilitedesignPlan
- le design plan qui contient les facteursprotected void fillDesignPlanNominalValue(org.nuiton.topia.TopiaContext context, DesignPlan designPlan)
context
- opened database contextdesignPlan
- design planprotected void submit(SimulationJob job)
protected void resubmit(SimulationJob job)
job
- l'item a resoumettreprotected void submitSubJob(SimulationJob job)
job
- public void submitForCheckOnly(SimulationJob job)
job
- job to submitpublic void restart(SimulationJob job)
job
- job to retstartprotected boolean cancel(SimulationJob job)
SimulationJob.stop()
job
- le job a annulerpublic boolean exists(String id)
protected void reportError(SimulatorLauncher launcher, SimulationJob job)
launcher
- le launcher posant problemejob
- le job qui n'a pas reussi a se fairepublic File prepareSimulationZipFile(SimulationParameter param, File outputZilFile, SimulationControl control, String xmlDesignPlan, SensitivityScenarios sensitivityScenarios) throws SimulationException
Le tout est zippé et le zip est retourné, il peut-être directement
importé dans le SimulationStorage
(en le renommant comme
il faut SimulationStorage.importAndRenameZip(File, String)
.
Ce zip est automatiquement supprimé à la fin de l'application.
param
- les paramètre de la simulationoutputZilFile
- output zip file containing simulation (can be null
, temp file will be created)control
- le controleur (can be null
)xmlDesignPlan
- contenu xml des design plan (can be null
)sensitivityScenarios
- used to add some extra files (such as rules) (can be null
)SimulationException
- pour tout problème rencontré (IO,Topia,Script compilation...)protected void compileAllFile(SimulationControl control, File directory) throws IOException
Il permet donc de compiler facilement tous les fichiers pour une simulation
control
- le controleur (can be null
)directory
- le répertoire où compilerIOException
Copyright © 1999–2020 CodeLutin. All rights reserved.