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
|
The Scheduler object implements algorithms of tasks scheduling. More...
Public Member Functions | |
def | __init__ (self, configParser, connectBuilderLight, pollerManager=None) |
constructor initialise all connections and event handlers More... | |
def | createDBIDict (self, configParser) |
create dict config (dict object) More... | |
def | onNewTask (self, event) |
onNewTask event handler More... | |
def | planTaskTimeToRun (self, task) |
def | onUpdateTask (self, event) |
onUpdateTask event handler More... | |
def | onDeleteTask (self, event) |
onDeleteTask event handler More... | |
def | onGetSheduledTasks (self, event) |
onGetSheduledTasks event handler More... | |
def | onAVGResourcesResponse (self, event) |
onAVGResourcesResponse event handler More... | |
def | onUpdateTaskFieldsResponse (self, event) |
method handler for DeleteTskResponse event More... | |
def | taskUpdateProcess (self) |
method start task delete process More... | |
def | rTimeCalc (self, schedulerTask, task_strategy, replanned) |
method recalculates new value of rTime field More... | |
def | addPendingEvent (self, event) |
add pending event in all auxiliary structures More... | |
def | deletePendingEvent (self, event) |
delete pending event from all auxiliary structures More... | |
def | stateRecalculate (self, task_strategy, schedulerTask) |
recalcutes state field More... | |
def | sendOperationProcessingError (self, event) |
send operation processing error More... | |
def | deleteTaskFromSchedule (self, deleteTask, schedulerTask=None) |
delete task from schedule More... | |
def | reschedulingTasks (self) |
rescheduling schedule after all changes in schedule More... | |
def | modifyTaskInSchedule (self, task) |
add task in schedule More... | |
def | checkCorrectTaskType (self, task) |
check that logic of requred operation corresponds with schedule state prevent wrong operation(update absent task, insert the same task) More... | |
def | isPossibleToRun (self, resourcesAVG, task_strategy) |
Check is task possible to run by comparison of required limits and actual resources. More... | |
def | getTimeSinceEpoch (self, date=None) |
get time since epoch in millisec More... | |
def | getPlannedRunTime (self, date_string) |
get planned run time 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 | |
cfg_section | |
tasksToUpdate | |
maxTasks | |
timeSlot | |
value of the timeSlot used in scheduling tasks More... | |
waitResourcesEvents | |
waitResourcesTasks | |
dbi | |
db contains schedule table More... | |
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 | |
int | OPERATION_ERR = 1024 |
string | OPERATION_ERR_MSG = "Previous task operations is not finished" |
int | RESOURCES_EXCEED_ERR = 1025 |
string | RESOURCES_EXCEED_ERR_MSG = "Resources are exceed" |
string | SERVER = "server" |
string | RESOURCES_MANAGER_CLIENT = "clientResourcesManager" |
string | CLIENT_INTERFACE_SERVICE_CLIENT = "clientClientInterfaceService" |
string | TIME_SLOT_PERIOD = "timeSlotPeriod" |
string | MAX_TASKS = "maxTasksPerTimeSlot" |
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", ""} |
The Scheduler object implements algorithms of tasks scheduling.
Definition at line 52 of file Scheduler.py.
def dtm.Scheduler.Scheduler.__init__ | ( | self, | |
configParser, | |||
connectBuilderLight, | |||
pollerManager = None |
|||
) |
constructor initialise all connections and event handlers
Definition at line 73 of file Scheduler.py.
def dtm.Scheduler.Scheduler.addPendingEvent | ( | self, | |
event | |||
) |
add pending event in all auxiliary structures
event | instance of Event object |
Definition at line 343 of file Scheduler.py.
def dtm.Scheduler.Scheduler.checkCorrectTaskType | ( | self, | |
task | |||
) |
check that logic of requred operation corresponds with schedule state prevent wrong operation(update absent task, insert the same task)
task | instance of Task inheritor |
Definition at line 423 of file Scheduler.py.
def dtm.Scheduler.Scheduler.createDBIDict | ( | self, | |
configParser | |||
) |
create dict config (dict object)
Definition at line 133 of file Scheduler.py.
def dtm.Scheduler.Scheduler.deletePendingEvent | ( | self, | |
event | |||
) |
delete pending event from all auxiliary structures
event | instance of Event object |
Definition at line 352 of file Scheduler.py.
def dtm.Scheduler.Scheduler.deleteTaskFromSchedule | ( | self, | |
deleteTask, | |||
schedulerTask = None |
|||
) |
delete task from schedule
deleteTask | instance of DeleteTask object |
Definition at line 381 of file Scheduler.py.
def dtm.Scheduler.Scheduler.getPlannedRunTime | ( | self, | |
date_string | |||
) |
get planned run time
date_string | sting contains data in strict format |
Definition at line 482 of file Scheduler.py.
def dtm.Scheduler.Scheduler.getTimeSinceEpoch | ( | self, | |
date = None |
|||
) |
get time since epoch in millisec
Definition at line 470 of file Scheduler.py.
def dtm.Scheduler.Scheduler.isPossibleToRun | ( | self, | |
resourcesAVG, | |||
task_strategy | |||
) |
Check is task possible to run by comparison of required limits and actual resources.
resourcesAVG | instance of ResourcesAVG object |
task | instance of Task object |
Definition at line 438 of file Scheduler.py.
def dtm.Scheduler.Scheduler.modifyTaskInSchedule | ( | self, | |
task | |||
) |
add task in schedule
task | instance of Task object |
Definition at line 398 of file Scheduler.py.
def dtm.Scheduler.Scheduler.onAVGResourcesResponse | ( | self, | |
event | |||
) |
onAVGResourcesResponse event handler
event | instance of Event object |
Definition at line 230 of file Scheduler.py.
def dtm.Scheduler.Scheduler.onDeleteTask | ( | self, | |
event | |||
) |
onDeleteTask event handler
event | instance of Event object |
Definition at line 198 of file Scheduler.py.
def dtm.Scheduler.Scheduler.onGetSheduledTasks | ( | self, | |
event | |||
) |
onGetSheduledTasks event handler
event | instance of Event object |
Definition at line 218 of file Scheduler.py.
def dtm.Scheduler.Scheduler.onNewTask | ( | self, | |
event | |||
) |
onNewTask event handler
event | instance of Event object |
Definition at line 141 of file Scheduler.py.
def dtm.Scheduler.Scheduler.onUpdateTask | ( | self, | |
event | |||
) |
onUpdateTask event handler
event | instance of Event object |
Definition at line 187 of file Scheduler.py.
def dtm.Scheduler.Scheduler.onUpdateTaskFieldsResponse | ( | self, | |
event | |||
) |
method handler for DeleteTskResponse event
Definition at line 293 of file Scheduler.py.
def dtm.Scheduler.Scheduler.planTaskTimeToRun | ( | self, | |
task | |||
) |
Definition at line 162 of file Scheduler.py.
def dtm.Scheduler.Scheduler.reschedulingTasks | ( | self | ) |
rescheduling schedule after all changes in schedule
Definition at line 390 of file Scheduler.py.
def dtm.Scheduler.Scheduler.rTimeCalc | ( | self, | |
schedulerTask, | |||
task_strategy, | |||
replanned | |||
) |
method recalculates new value of rTime field
schedulerTask | incoming schedulerTask |
task_strategy | incoming strategy dict |
Definition at line 316 of file Scheduler.py.
def dtm.Scheduler.Scheduler.sendOperationProcessingError | ( | self, | |
event | |||
) |
send operation processing error
event | instance of Event object |
Definition at line 372 of file Scheduler.py.
def dtm.Scheduler.Scheduler.stateRecalculate | ( | self, | |
task_strategy, | |||
schedulerTask | |||
) |
recalcutes state field
task_strategy | task's strategies |
schedulerTask | task object |
Definition at line 362 of file Scheduler.py.
def dtm.Scheduler.Scheduler.taskUpdateProcess | ( | self | ) |
method start task delete process
idsToDelete | list tasks for deleting |
Definition at line 303 of file Scheduler.py.
dtm.Scheduler.Scheduler.cfg_section |
Definition at line 76 of file Scheduler.py.
|
static |
Definition at line 65 of file Scheduler.py.
dtm.Scheduler.Scheduler.dbi |
db contains schedule table
Definition at line 119 of file Scheduler.py.
|
static |
Definition at line 67 of file Scheduler.py.
dtm.Scheduler.Scheduler.maxTasks |
Definition at line 82 of file Scheduler.py.
|
static |
Definition at line 56 of file Scheduler.py.
|
static |
Definition at line 57 of file Scheduler.py.
|
static |
Definition at line 59 of file Scheduler.py.
|
static |
Definition at line 60 of file Scheduler.py.
|
static |
Definition at line 64 of file Scheduler.py.
|
static |
Definition at line 63 of file Scheduler.py.
dtm.Scheduler.Scheduler.tasksToUpdate |
Definition at line 77 of file Scheduler.py.
|
static |
Definition at line 66 of file Scheduler.py.
dtm.Scheduler.Scheduler.timeSlot |
value of the timeSlot used in scheduling tasks
Definition at line 86 of file Scheduler.py.
dtm.Scheduler.Scheduler.waitResourcesEvents |
Definition at line 110 of file Scheduler.py.
dtm.Scheduler.Scheduler.waitResourcesTasks |
Definition at line 115 of file Scheduler.py.