HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
dtm.TasksExecutor.TasksExecutor Class Reference

The Tasks Executor object Main job of this object is a selection of scheduled tasks from the schedule and send them to the ExecutionEnvironmentManager object to set them to the Execution Environment for execution. More...

Inheritance diagram for dtm.TasksExecutor.TasksExecutor:
Collaboration diagram for dtm.TasksExecutor.TasksExecutor:

Public Member Functions

def __del__ (self)
 destructor just in case More...
 
def __init__ (self, configParser, connectBuilderLight)
 constructor initialise all connections and event handlers More...
 
def onSchedulerRoute (self, event)
 handler to route all event to TaksManager More...
 
def on_poll_timeout (self)
 function will call every time when ConnectionTimeout exception arrive More...
 
def onAdminSuspend (self, event)
 onAdminState event handler process admin command More...
 
- Public Member Functions inherited from app.BaseServerManager.BaseServerManager
def __init__ (self, poller_manager=None, admin_connection=None, conectionLightBuilder=None, exceptionForward=False, dumpStatVars=True)
 constructor More...
 
def addConnection (self, name, connection)
 
def setEventHandler (self, eventType, handler)
 set event handler rewrite the current handler for eventType More...
 
def send (self, connect_name, event)
 send event More...
 
def reply (self, event, reply_event)
 wrapper for sending event in reply for event More...
 
def poll (self)
 poll function polling connections receive as multipart msg, the second argument is pickled pyobj More...
 
def process (self, event)
 process event call the event handler method that was set by user or on_unhandled_event method if not set More...
 
def run (self)
 
def is_connection_registered (self, name)
 check is a connection was registered in a instance of BaseServerManager i object More...
 
def on_poll_timeout (self)
 function will call every time when ConnectionTimeout exception arrive More...
 
def on_unhandled_event (self, event)
 function will call every time when arrive doesn't set handler for event type of event.evenType More...
 
def build_poller_list (self)
 
def clear_poller (self)
 
def onAdminState (self, event)
 onAdminState event handler process admin SHUTDOWN command More...
 
def onAdminFetchStatData (self, event)
 onAdminState event handler process admin command More...
 
def onAdminSuspend (self, event)
 onAdminState event handler process admin command More...
 
def getStatDataFields (self, fields)
 getStatDataFields returns stat data from storage More...
 
def getSystemStat (self)
 getSystemStat returns stat data for system indicators: RAMV, RAMR and CPU More...
 
def getConfigVarsFields (self, fields)
 getConfigVarsFields returns config vars from storage More...
 
def onAdminGetConfigVars (self, event)
 onAdminGetConfigVars event handler process getConfigVars admin command, fill and return config vars array from internal storage More...
 
def onAdminSetConfigVars (self, event)
 onAdminSetConfigVars event handler process setConfigVars admin command More...
 
def setConfigVars (self, setConfigVars)
 processSetConfigVars sets config vars in storage More...
 
def sendAdminReadyEvent (self)
 send ready event to notify adminInterfaceService More...
 
def createLogMsg (self, event)
 from string message from event object More...
 
def initStatFields (self, connect_name)
 add record in statFields More...
 
def updateStatField (self, field_name, value, operation=STAT_FIELDS_OPERATION_ADD)
 update values of stat field - default sum More...
 
def processSpecialConfigVars (self, name, value)
 send ready event to notify adminInterfaceService More...
 
def getLogLevel (self)
 Get log level from first of existing loggers. More...
 
def setLogLevel (self, level)
 Set log level for all loggers. More...
 
def saveStatVarsDump (self)
 Save stat vars in json file. More...
 
def loadStatVarsDump (self)
 Load stat vars in json file. More...
 
def getStatVarsDumpFileName (self)
 Get stat vars file name. More...
 
def createDBIDict (self, configParser)
 

Public Attributes

 executionEnvironmentManager
 
 scheduler
 
 processEvents
 
 isReqSended
 
 old
 
- Public Attributes inherited from app.BaseServerManager.BaseServerManager
 dumpStatVars
 
 poller_manager
 
 eventBuilder
 
 exit_flag
 
 pollTimeout
 
 connections
 
 event_handlers
 
 statFields
 stat fields container More...
 
 configVars
 
 exceptionForward
 

Static Public Attributes

string CONFIG_TIME_SLOT_PERIOD = "timeSlotPeriod"
 
string STAT_SUSPEND_STATE = "suspendState"
 
- Static Public Attributes inherited from app.BaseServerManager.BaseServerManager
string ADMIN_CONNECT_ENDPOINT = "Admin"
 
string ADMIN_CONNECT_CLIENT = "Admin"
 
int POLL_TIMEOUT_DEFAULT = 3000
 
int STAT_FIELDS_OPERATION_ADD = 0
 
int STAT_FIELDS_OPERATION_SUB = 1
 
int STAT_FIELDS_OPERATION_SET = 2
 
int STAT_FIELDS_OPERATION_INIT = 3
 
string POLL_TIMEOUT_CONFIG_VAR_NAME = "POLL_TIMEOUT"
 
string LOG_LEVEL_CONFIG_VAR_NAME = "LOG_LEVEL"
 
string STAT_DUMPS_DEFAULT_DIR = "/tmp/"
 
string STAT_DUMPS_DEFAULT_NAME = "%APP_NAME%_%CLASS_NAME%_stat_vars.dump"
 
dictionary LOGGERS_NAMES = {APP_CONSTS.LOGGER_NAME, "dc", "dtm", "root", ""}
 

Detailed Description

The Tasks Executor object Main job of this object is a selection of scheduled tasks from the schedule and send them to the ExecutionEnvironmentManager object to set them to the Execution Environment for execution.

Definition at line 35 of file TasksExecutor.py.

Constructor & Destructor Documentation

◆ __del__()

def dtm.TasksExecutor.TasksExecutor.__del__ (   self)

destructor just in case

Definition at line 43 of file TasksExecutor.py.

43  def __del__(self):
44  pass
45 
46 

◆ __init__()

def dtm.TasksExecutor.TasksExecutor.__init__ (   self,
  configParser,
  connectBuilderLight 
)

constructor initialise all connections and event handlers

Definition at line 50 of file TasksExecutor.py.

50  def __init__(self, configParser, connectBuilderLight):
51  # create clients
52  super(TasksExecutor, self).__init__()
53 
54  # create clients
55  executionEnvironmentManager = configParser.get(CONFIG_SECTION, "ExecutionEnvironmentManager")
56  scheduler = configParser.get(CONFIG_SECTION, "Scheduler")
57 
58  # create client's connections
59  executionEnvironmentManagerConnection = connectBuilderLight.build(TRANSPORT_CONSTS.CLIENT_CONNECT,
60  executionEnvironmentManager)
61  schedulerConnection = connectBuilderLight.build(TRANSPORT_CONSTS.CLIENT_CONNECT, scheduler)
62 
63  # create client's names
64  self.executionEnvironmentManager = "executionEnvironmentManager"
65  self.scheduler = "scheduler"
66 
67  # create connects
68  self.addConnection(self.executionEnvironmentManager, executionEnvironmentManagerConnection)
69  self.addConnection(self.scheduler, schedulerConnection)
70 
71  # create event handlers
72  self.setEventHandler(DTM_CONSTS.EVENT_TYPES.GET_SCHEDULED_TASKS_RESPONSE, self.onSchedulerRoute)
73 
74  # I don't know what it is
75  self.processEvents = dict()
76 
77  # get time slot period
78  self.configVars[self.POLL_TIMEOUT_CONFIG_VAR_NAME] = configParser.getint(CONFIG_SECTION,
79  self.CONFIG_TIME_SLOT_PERIOD)
80 
81  # flag
82  self.isReqSended = True
83 
84  self.old = None
85 
86  self.statFields[self.STAT_SUSPEND_STATE] = False
87 
88 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ on_poll_timeout()

def dtm.TasksExecutor.TasksExecutor.on_poll_timeout (   self)

function will call every time when ConnectionTimeout exception arrive

Definition at line 107 of file TasksExecutor.py.

107  def on_poll_timeout(self):
108  # request has not been sent yet
109  if not self.statFields[self.STAT_SUSPEND_STATE]:
110  if self.isReqSended:
111  self.old = time.clock()
112  getScheduledTasks = GetScheduledTasks(self.configVars[self.POLL_TIMEOUT_CONFIG_VAR_NAME])
113  scheduled_event = self.eventBuilder.build(DTM_CONSTS.EVENT_TYPES.GET_SCHEDULED_TASKS, getScheduledTasks)
114  self.send(self.scheduler, scheduled_event)
115  self.isReqSended = False
116  # request already has not been sent
117  else:
118  pass
119 
120 
Here is the call graph for this function:

◆ onAdminSuspend()

def dtm.TasksExecutor.TasksExecutor.onAdminSuspend (   self,
  event 
)

onAdminState event handler process admin command

Parameters
eventinstance of Event object

Definition at line 125 of file TasksExecutor.py.

125  def onAdminSuspend(self, event):
126  if event.eventObj is not None:
127  self.statFields[self.STAT_SUSPEND_STATE] = event.eventObj.isSuspend()
128  super(TasksExecutor, self).onAdminSuspend(event)
129 

◆ onSchedulerRoute()

def dtm.TasksExecutor.TasksExecutor.onSchedulerRoute (   self,
  event 
)

handler to route all event to TaksManager

Parameters
eveninstance of Event object

Definition at line 92 of file TasksExecutor.py.

92  def onSchedulerRoute(self, event):
93  scheduledTasks = event.eventObj
94  for scheduledTask in scheduledTasks.ids:
95  executeTask = ExecuteTask(scheduledTask)
96  eem_event = self.eventBuilder.build(DTM_CONSTS.EVENT_TYPES.EXECUTE_TASK, executeTask)
97  self.send(self.executionEnvironmentManager, eem_event)
98  # set flag to send requests to the scheduler
99  diff = time.clock() - self.old
100  delay = diff % self.configVars[self.POLL_TIMEOUT_CONFIG_VAR_NAME]
101  time.sleep(delay / 1000.0) # adjust delay in milliseconds
102  self.isReqSended = True
103 
104 
Here is the call graph for this function:

Member Data Documentation

◆ CONFIG_TIME_SLOT_PERIOD

string dtm.TasksExecutor.TasksExecutor.CONFIG_TIME_SLOT_PERIOD = "timeSlotPeriod"
static

Definition at line 37 of file TasksExecutor.py.

◆ executionEnvironmentManager

dtm.TasksExecutor.TasksExecutor.executionEnvironmentManager

Definition at line 64 of file TasksExecutor.py.

◆ isReqSended

dtm.TasksExecutor.TasksExecutor.isReqSended

Definition at line 82 of file TasksExecutor.py.

◆ old

dtm.TasksExecutor.TasksExecutor.old

Definition at line 84 of file TasksExecutor.py.

◆ processEvents

dtm.TasksExecutor.TasksExecutor.processEvents

Definition at line 75 of file TasksExecutor.py.

◆ scheduler

dtm.TasksExecutor.TasksExecutor.scheduler

Definition at line 65 of file TasksExecutor.py.

◆ STAT_SUSPEND_STATE

string dtm.TasksExecutor.TasksExecutor.STAT_SUSPEND_STATE = "suspendState"
static

Definition at line 38 of file TasksExecutor.py.


The documentation for this class was generated from the following file: