OpendTect  6.6
jobrunner.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H.Bril
8  Date: Oct 2004
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "mmprocmod.h"
15 #include "executor.h"
16 #include "jobinfo.h"
17 
18 class BufferStringSet;
19 class FilePath;
20 class HostData;
21 class JobDescProv;
22 class JobIOMgr;
23 class StatusInfo;
24 
31 public:
32  HostNFailInfo( const HostData& hd )
33  : hostdata_(hd)
34  , nrfailures_(0)
35  , nrsucces_(0)
36  , lastsuccess_(0)
37  , starttime_(0)
38  , inuse_(false) {}
39 
42  int nrsucces_;
43  int starttime_;
45  bool inuse_;
46 };
47 
48 
55 public:
56 
57  JobRunner(JobDescProv*,const char* cmd);
60 
61  const JobDescProv* descProv() const { return descprov_; }
62 
63  const ObjectSet<HostNFailInfo>& hostInfo() const { return hostinfo_; }
64  bool addHost(const HostData&);
65  void removeHost(int);
66  void pauseHost(int,bool);
67  bool stopAll();
68  bool hostFailed(int) const;
69  bool isPaused(int) const;
70  bool isAssigned( const JobInfo& ji ) const;
71 
72  int nrJobs( bool failed=false ) const
73  { return (failed ? failedjobs_ : jobinfos_)
74  .size(); }
75  const JobInfo& jobInfo( int idx, bool failed=false ) const
76  { return *(failed ? failedjobs_ : jobinfos_)
77  [idx]; }
78 
79  int jobsDone() const;
80  int jobsInProgress() const;
81  int jobsLeft() const
82  { return jobinfos_.size() - jobsDone(); }
83  int totalJobs() const
84  { return jobinfos_.size()+failedjobs_.size(); }
86 
87  int nextStep() { return doCycle(); }
88  od_int64 nrDone() const { return jobsDone(); }
89  od_int64 totalNr() const { return totalJobs(); }
92 
93  // Set these before first step
94  void setFirstPort( int n ) { firstport_ = n; }
95  void setRshComm( const char* s ) { rshcomm_ = s; }
96  void setProg( const char* s ) { prog_ = s; }
97  // Set this anytime
98  void setNiceNess( int n );
99 
102 
107 
108  const JobInfo& curJobInfo() const { return *curjobinfo_; }
109  IOPar& curJobIOPar() { return curjobiop_; }
110  const FilePath& curJobFilePath() { return curjobfp_; }
112 
113  const char* procDir() const { return procdir_.buf(); }
114  // processing directory on local machine
116 
117 protected:
118 
128 
131 
132  int niceval_;
144 
145  int doCycle();
147 
151 
153 
154  enum StartRes { Started, NotStarted, JobBad, HostBad };
156  bool runJob(JobInfo&,const HostData&);
157 
158 
159  enum AssignStat { NotReady, BadHost, JobStarted, NoJobs };
161  bool haveIncomplete() const;
162 
163  enum HostStat { OK = 0, SomeFailed = 1, HostFailed = 2 };
166 };
167 
JobRunner::procDir
const char * procDir() const
Definition: jobrunner.h:113
JobRunner::procdir_
BufferString procdir_
Definition: jobrunner.h:124
jobinfo.h
JobDescProv
Interface for providing parameter files for jobs (job descriptions). Two implementations are pre-cook...
Definition: jobdescprov.h:27
JobRunner::hostStatus
HostStat hostStatus(const HostNFailInfo *) const
JobRunner::AssignStat
AssignStat
Definition: jobrunner.h:159
JobRunner::isPaused
bool isPaused(int) const
JobRunner::jobInfo
const JobInfo & jobInfo(int idx, bool failed=false) const
Definition: jobrunner.h:75
ObjectSet< HostNFailInfo >
JobRunner::startwaittime_
int startwaittime_
wait B4 next client start
Definition: jobrunner.h:142
JobRunner::nrDone
od_int64 nrDone() const
Definition: jobrunner.h:88
JobRunner::totalJobs
int totalJobs() const
Definition: jobrunner.h:83
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
JobRunner::starttimeout_
int starttimeout_
Definition: jobrunner.h:138
JobRunner::hostinfo_
ObjectSet< HostNFailInfo > hostinfo_
Definition: jobrunner.h:121
od_int64
#define od_int64
Definition: plftypes.h:35
JobRunner::haveIncomplete
bool haveIncomplete() const
JobRunner::jobsInProgress
int jobsInProgress() const
HostData
Host name and aliases.
Definition: hostdata.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
FilePath
File pathname tools.
Definition: filepath.h:34
JobRunner::hostFailed
bool hostFailed(int) const
JobRunner::getBaseFilePath
const FilePath & getBaseFilePath(JobInfo &, const HostData &)
JobRunner::failedjobs_
ObjectSet< JobInfo > failedjobs_
Definition: jobrunner.h:122
JobRunner::failedJob
void failedJob(JobInfo &, JobInfo::State)
JobRunner::mODTextTranslationClass
mODTextTranslationClass(JobRunner)
HostNFailInfo::inuse_
bool inuse_
Definition: jobrunner.h:45
JobRunner::niceval_
int niceval_
Definition: jobrunner.h:132
JobRunner::updateJobInfo
void updateJobInfo()
JobRunner::startJob
StartRes startJob(JobInfo &ji, HostNFailInfo &jhi)
JobRunner::totalNr
od_int64 totalNr() const
Definition: jobrunner.h:89
JobRunner::uiMessage
uiString uiMessage() const
will be message() again in 7.x
JobRunner::curjobinfo_
JobInfo * curjobinfo_
Definition: jobrunner.h:127
JobRunner::nrDoneMessage
uiString nrDoneMessage() const
JobRunner::StartRes
StartRes
Definition: jobrunner.h:154
JobRunner::HostStat
HostStat
Definition: jobrunner.h:163
JobRunner::msgAvail
Notifier< JobRunner > msgAvail
Definition: jobrunner.h:106
JobRunner::addHost
bool addHost(const HostData &)
HostNFailInfo::starttime_
int starttime_
Set whenever host added.
Definition: jobrunner.h:43
JobRunner::prog_
BufferString prog_
Definition: jobrunner.h:123
JobRunner::hostNFailInfoFor
HostNFailInfo * hostNFailInfoFor(const HostData *) const
HostNFailInfo::nrfailures_
int nrfailures_
Reset to 0 at every success.
Definition: jobrunner.h:41
JobRunner::iomgr_
JobIOMgr * iomgr_
Definition: jobrunner.h:130
JobRunner::curJobFilePath
const FilePath & curJobFilePath()
Definition: jobrunner.h:110
JobRunner::doCycle
int doCycle()
JobRunner::hostInfo
const ObjectSet< HostNFailInfo > & hostInfo() const
Definition: jobrunner.h:63
HostNFailInfo::lastsuccess_
int lastsuccess_
timestamp
Definition: jobrunner.h:44
JobRunner::curJobIOPar
IOPar & curJobIOPar()
Definition: jobrunner.h:109
JobRunner::assignJob
AssignStat assignJob(HostNFailInfo &)
JobRunner::isAssigned
bool isAssigned(const JobInfo &ji) const
StatusInfo
Encapsulates status message from a running client.
Definition: jobiomgr.h:38
JobRunner::currentJob
JobInfo * currentJob(const HostNFailInfo *) const
JobInfo
All information on a job.
Definition: jobinfo.h:24
JobRunner::rshcomm_
BufferString rshcomm_
Definition: jobrunner.h:134
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
HostNFailInfo
Holds host-specific status information.
Definition: jobrunner.h:30
HostNFailInfo::nrsucces_
int nrsucces_
Definition: jobrunner.h:42
JobRunner::curjobiop_
IOPar & curjobiop_
Definition: jobrunner.h:126
Notifier< JobRunner >
JobRunner::nextStep
int nextStep()
Definition: jobrunner.h:87
JobRunner::handleStatusInfo
void handleStatusInfo(StatusInfo &)
executor.h
JobRunner::jobFailed
Notifier< JobRunner > jobFailed
Definition: jobrunner.h:105
JobRunner::setFirstPort
void setFirstPort(int n)
Definition: jobrunner.h:94
JobRunner::handleExitStatus
void handleExitStatus(JobInfo &)
JobRunner::jobsLeft
int jobsLeft() const
Definition: jobrunner.h:81
JobIOMgr
Handles starting & stopping of jobs on client machines. Sets up a separate thread to maintain contact...
Definition: jobiomgr.h:62
JobRunner::showMachStatus
void showMachStatus(BufferStringSet &) const
JobRunner::runJob
bool runJob(JobInfo &, const HostData &)
JobRunner::maxhostfailures_
int maxhostfailures_
host failrs B4 host bad
Definition: jobrunner.h:135
JobRunner::errorMsg
uiString errorMsg() const
JobRunner::wrapuptimeout_
int wrapuptimeout_
Definition: jobrunner.h:140
JobRunner::iomgr
JobIOMgr & iomgr()
JobRunner::nrJobs
int nrJobs(bool failed=false) const
Definition: jobrunner.h:72
HostNFailInfo::mODTextTranslationClass
mODTextTranslationClass(HostNFailInfo)
JobRunner::~JobRunner
~JobRunner()
JobRunner::maxjobhstfails_
int maxjobhstfails_
host related job failrs
Definition: jobrunner.h:137
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
JobRunner::hosttimeout_
int hosttimeout_
Definition: jobrunner.h:141
JobRunner::failtimeout_
int failtimeout_
Definition: jobrunner.h:139
JobRunner::getLastReceivedTime
int getLastReceivedTime(JobInfo &)
JobRunner::setRshComm
void setRshComm(const char *s)
Definition: jobrunner.h:95
JobRunner::descprov_
JobDescProv * descprov_
Definition: jobrunner.h:119
JobRunner::jobsDone
int jobsDone() const
JobRunner::errmsg_
uiString errmsg_
Definition: jobrunner.h:143
JobRunner::JobRunner
JobRunner(JobDescProv *, const char *cmd)
JobDescProv becomes mine. Never pass null.
JobRunner::setNiceNess
void setNiceNess(int n)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
JobRunner::curJobInfo
const JobInfo & curJobInfo() const
Definition: jobrunner.h:108
JobRunner::preJobStart
Notifier< JobRunner > preJobStart
Definition: jobrunner.h:103
JobRunner::stopAll
bool stopAll()
JobInfo::State
State
Definition: jobinfo.h:28
JobRunner::pauseHost
void pauseHost(int, bool)
StatusInfo::descnr
int descnr
Definition: jobiomgr.h:47
JobRunner::gtJob
JobInfo * gtJob(int descnr)
JobRunner
Runs all jobs defined by JobDescProv.
Definition: jobrunner.h:54
JobRunner::postJobStart
Notifier< JobRunner > postJobStart
Definition: jobrunner.h:104
MMProc
Distributed Computing.
Definition: mmassetmgr.h:23
JobRunner::setProg
void setProg(const char *s)
Definition: jobrunner.h:96
JobRunner::firstport_
int firstport_
Definition: jobrunner.h:133
HostNFailInfo::HostNFailInfo
HostNFailInfo(const HostData &hd)
Definition: jobrunner.h:32
HostNFailInfo::hostdata_
const HostData & hostdata_
Definition: jobrunner.h:40
JobRunner::descProv
const JobDescProv * descProv() const
Definition: jobrunner.h:61
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
JobRunner::maxjobfailures_
int maxjobfailures_
job related job failrs
Definition: jobrunner.h:136
JobRunner::jobinfos_
ObjectSet< JobInfo > jobinfos_
Definition: jobrunner.h:120
JobRunner::NotReady
@ NotReady
Definition: jobrunner.h:159
JobRunner::removeHost
void removeHost(int)
JobRunner::curjobfp_
FilePath & curjobfp_
Definition: jobrunner.h:125

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021