Node Director
|
The recorder records jobs in a queue directory and plays them back on demand. More...
Public Member Functions | |
Recorder (String directory) throws DirectorException | |
void | record (RemoteJob job) throws DirectorException |
synchronized void | record (DBObject jobdbo) throws DirectorException |
void | replay () throws DirectorException |
Protected Member Functions | |
String | getBaseName () |
void | incrementSeq () throws DirectorException |
String | infile (String url) throws DirectorException |
void | executeJob (String jobfile) throws DirectorException, IOException |
The recorder records jobs in a queue directory and plays them back on demand.
All the job data (job input files) is stored within the queue directory, the output files are redirected to dummy files, the target host is always the replaying host. Therefore the queue directory can be copied to an arbitrary host and will play back.
The record() method recording jobs is called from the InvokerManager whenever a job is invoked on a host having the
sfirecorderdir
attribute set. The replay() method is called by the cli.replay class.
sfi.director.invoker.Recorder.Recorder | ( | String | directory | ) | throws DirectorException |
References sfi.director.util.Setup.fileSeparator.
|
protected |
References sfi.director.util.Tools.debug(), sfi.director.util.Logger.ERR, sfi.director.util.Setup.fileSeparator, sfi.director.jobs.RemoteJob.getInputFile(), sfi.director.jobs.RemoteJob.getOutputFile(), sfi.director.util.Setup.hostname, sfi.director.jobs.RemoteJob.invoke(), sfi.director.util.Tools.log(), sfi.director.util.Setup.programid, sfi.director.jobs.RemoteJob.setHost(), sfi.director.jobs.RemoteJob.setInputFile(), sfi.director.jobs.RemoteJob.setOutputFile(), sfi.director.util.Setup.tmpstorage, and sfi.director.jobs.Job.WakeUp().
Referenced by sfi.director.invoker.Recorder.replay().
|
protected |
Referenced by sfi.director.invoker.Recorder.infile(), and sfi.director.invoker.Recorder.record().
|
protected |
Referenced by sfi.director.invoker.Recorder.record().
|
protected |
void sfi.director.invoker.Recorder.record | ( | RemoteJob | job | ) | throws DirectorException |
Referenced by sfi.director.invoker.InvokerManager.invoke().
synchronized void sfi.director.invoker.Recorder.record | ( | DBObject | jobdbo | ) | throws DirectorException |
References sfi.director.invoker.Recorder.getBaseName(), sfi.director.jobs.RemoteJob.getInputFile(), sfi.director.invoker.Recorder.incrementSeq(), sfi.director.invoker.Recorder.infile(), sfi.director.util.Lock.LocalLock(), sfi.director.jobs.RemoteJob.setInputFile(), sfi.director.jobs.RemoteJob.todb(), and sfi.director.util.Lock.unlock().
void sfi.director.invoker.Recorder.replay | ( | ) | throws DirectorException |
References sfi.director.invoker.Recorder.executeJob(), and sfi.director.util.Tools.sort().
Referenced by sfi.director.cli.replay.run().