def __initiate_delay(self, task, previous_task=None):
''' Runs delay function associated with task to register delay in delay table
'''
delay=self.__delays[task.step_id]
module_logger.debug("Initiating delay: %s (previous=%s)" % (delay.delay_id, repr(previous_task)))
active=True
activated=datetime.utcnow()
if previous_task is not None:
prev_delay=self.__previous_delays[task.sequence][task.step_id]
active=prev_delay.active
activated=prev_delay.activated
module_logger.debug("Fetched delay from previous: active: %s, activated: %s" % (active, activated))
delay_func=delay.func
try:
result=delay_func(activated=activated, active=active, sequence=task.sequence, recovery=task.recovery)
except Exception as e:
task.status=TaskStatus.failure
module_logger.critical('Exception in task execution: \n {}'.format(task,)) #)
trace=inspect.trace()
trace=traces(trace)
module_logger.critical("%s\n %s" % (repr(e), '\n '.join(trace)))
module_logger.info("Stopping running processes")
self.__state=EventorState.shutdown
if result:
task.status=TaskStatus.success
result=TaskAdminMsg(msg_type=TaskAdminMsgType.result, value=task)
adminq=self.__adminq_th
adminq.put( result )
评论列表
文章目录