JobWrapper¶
The Job Wrapper Class is instantiated with arguments tailored for running a particular job. The JobWrapper starts a thread for execution of the job and a Watchdog Agent that can monitor its progress.
-
class
DIRAC.WorkloadManagementSystem.JobWrapper.JobWrapper.
ExecutionThread
(spObject, cmd, maxPeekLines, stdoutFile, stderrFile, exeEnv)¶ Bases:
threading.Thread
-
__init__
(spObject, cmd, maxPeekLines, stdoutFile, stderrFile, exeEnv)¶ This constructor should always be called with keyword arguments. Arguments are:
group should be None; reserved for future extension when a ThreadGroup class is implemented.
target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.
name is the thread name. By default, a unique name is constructed of the form “Thread-N” where N is a small decimal number.
args is the argument tuple for the target invocation. Defaults to ().
kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.
If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.
-
daemon
¶ A boolean value indicating whether this thread is a daemon thread (True) or not (False).
This must be set before start() is called, otherwise RuntimeError is raised. Its initial value is inherited from the creating thread; the main thread is not a daemon thread and therefore all threads created in the main thread default to daemon = False.
The entire Python program exits when no alive non-daemon threads are left.
-
getCurrentPID
()¶
-
getName
()¶
-
getOutput
(lines=0)¶
-
ident
¶ Thread identifier of this thread or None if it has not been started.
This is a nonzero integer. See the thread.get_ident() function. Thread identifiers may be recycled when a thread exits and another thread is created. The identifier is available even after the thread has exited.
-
isAlive
()¶ Return whether the thread is alive.
This method returns True just before the run() method starts until just after the run() method terminates. The module function enumerate() returns a list of all alive threads.
-
isDaemon
()¶
-
is_alive
()¶ Return whether the thread is alive.
This method returns True just before the run() method starts until just after the run() method terminates. The module function enumerate() returns a list of all alive threads.
-
join
(timeout=None)¶ Wait until the thread terminates.
This blocks the calling thread until the thread whose join() method is called terminates – either normally or through an unhandled exception or until the optional timeout occurs.
When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). As join() always returns None, you must call isAlive() after join() to decide whether a timeout happened – if the thread is still alive, the join() call timed out.
When the timeout argument is not present or None, the operation will block until the thread terminates.
A thread can be join()ed many times.
join() raises a RuntimeError if an attempt is made to join the current thread as that would cause a deadlock. It is also an error to join() a thread before it has been started and attempts to do so raises the same exception.
-
name
¶ A string used for identification purposes only.
It has no semantics. Multiple threads may be given the same name. The initial name is set by the constructor.
-
run
()¶ Method representing the thread activity. This one overrides the ~threading.Thread run method
-
sendOutput
(stdid, line)¶
-
setDaemon
(daemonic)¶
-
setName
(name)¶
-
start
()¶ Start the thread’s activity.
It must be called at most once per thread object. It arranges for the object’s run() method to be invoked in a separate thread of control.
This method will raise a RuntimeError if called more than once on the same thread object.
-
-
class
DIRAC.WorkloadManagementSystem.JobWrapper.JobWrapper.
JobWrapper
(jobID=None, jobReport=None)¶ Bases:
object
The only user of the JobWrapper is the JobWrapperTemplate
-
__init__
(jobID=None, jobReport=None)¶ Standard constructor
-
execute
(arguments)¶ The main execution method of the Job Wrapper
-
finalize
()¶ Perform any final actions to clean up after job execution.
-
initialize
(arguments)¶ Initializes parameters and environment for job.
-
processJobOutputs
()¶ Outputs for a job may be treated here.
-
resolveInputData
()¶ Input data is resolved here using a VO specific plugin module.
-
sendFailoverRequest
(status='', minorStatus='')¶ Create and send a combined job failover request if any
-
sendJobAccounting
(status='', minorStatus='')¶ Send WMS accounting data.
-
transferInputSandbox
(inputSandbox)¶ Downloads the input sandbox for the job
-
-
DIRAC.WorkloadManagementSystem.JobWrapper.JobWrapper.
rescheduleFailedJob
(jobID, message, jobReport=None)¶ Function for rescheduling a jobID, with a message