3 @author Oleksii <developers.hce@gmail.com> 4 @link http://hierarchical-cluster-engine.com/ 5 @copyright Copyright © 2013 IOIX Ukraine 6 @license http://hierarchical-cluster-engine.com/license/ 7 @package HCE project node API 17 from EventObjects
import ExecuteTask
18 from EventObjects
import GetScheduledTasks
24 CONFIG_SECTION =
"TasksExecutor" 28 logger = logging.getLogger(DTM_CONSTS.LOGGER_NAME)
37 CONFIG_TIME_SLOT_PERIOD =
"timeSlotPeriod" 38 STAT_SUSPEND_STATE =
"suspendState" 50 def __init__(self, configParser, connectBuilderLight):
52 super(TasksExecutor, self).
__init__()
55 executionEnvironmentManager = configParser.get(CONFIG_SECTION,
"ExecutionEnvironmentManager")
56 scheduler = configParser.get(CONFIG_SECTION,
"Scheduler")
59 executionEnvironmentManagerConnection = connectBuilderLight.build(TRANSPORT_CONSTS.CLIENT_CONNECT,
60 executionEnvironmentManager)
61 schedulerConnection = connectBuilderLight.build(TRANSPORT_CONSTS.CLIENT_CONNECT, scheduler)
93 scheduledTasks = event.eventObj
94 for scheduledTask
in scheduledTasks.ids:
96 eem_event = self.
eventBuilder.build(DTM_CONSTS.EVENT_TYPES.EXECUTE_TASK, executeTask)
99 diff = time.clock() - self.
old 101 time.sleep(delay / 1000.0)
111 self.
old = time.clock()
113 scheduled_event = self.
eventBuilder.build(DTM_CONSTS.EVENT_TYPES.GET_SCHEDULED_TASKS, getScheduledTasks)
126 if event.eventObj
is not None:
def on_poll_timeout(self)
function will call every time when ConnectionTimeout exception arrive
string STAT_SUSPEND_STATE
string CONFIG_TIME_SLOT_PERIOD
executionEnvironmentManager
ExecuteTask event object, to set task to execute on EE.
string POLL_TIMEOUT_CONFIG_VAR_NAME
def __del__(self)
destructor just in case
def setEventHandler(self, eventType, handler)
set event handler rewrite the current handler for eventType
def addConnection(self, name, connection)
This is app base class for management server connection end-points and parallel transport messages pr...
The Tasks Executor object Main job of this object is a selection of scheduled tasks from the schedule...
def onSchedulerRoute(self, event)
handler to route all event to TaksManager
GetScheduledTasks event object, to get tasks per time slot range from the Scheduler.
statFields
stat fields container
def send(self, connect_name, event)
send event
def onAdminSuspend(self, event)
onAdminState event handler process admin command
def __init__(self, configParser, connectBuilderLight)
constructor initialise all connections and event handlers