本文整理汇总了Python中apscheduler.scheduler.Scheduler._stopped方法的典型用法代码示例。如果您正苦于以下问题:Python Scheduler._stopped方法的具体用法?Python Scheduler._stopped怎么用?Python Scheduler._stopped使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类apscheduler.scheduler.Scheduler
的用法示例。
在下文中一共展示了Scheduler._stopped方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from apscheduler.scheduler import Scheduler [as 别名]
# 或者: from apscheduler.scheduler.Scheduler import _stopped [as 别名]
class MonitorScheduler:
#logger = LoggerUtil.getLogger('MonitorScheduler')
def __init__(self,events):
self.scheduler = Scheduler(daemonic = False)
self.scheduler.add_cron_job(self.monitorListener, second='*/3')
self.events = events
self.flag = True
self.runflag = True
if self.events !=None:
self.flag = True
self.monitor_tasks = {}
def monitorListener(self):
if self.flag == True:
print "first monitorListener:"
self.flag = False
ConfigUtil().setEvents(self.events)
self.monitor_tasks_start(self.events)
else:
events = CDSUtil.getEvents(CDSUtil)
eventInfos = self.event_filter(events)
if eventInfos == None or len(eventInfos) == 0:
return
ConfigUtil().setEvents(events)
self.monitor_tasks_start(eventInfos)
def start(self):
print('MonitorScheduler start ...')
self.scheduler.start()
def stop(self):
self.scheduler._stopped()
# Filtering duplicate events
def event_filter(self,events):
eventInfos = []
if events == None or len(events) == 0:
return None
for event in events:
if ConfigUtil().is_config_has_event(event) == False:
eventInfos.append(event)
return eventInfos
def monitor_task_start(self,monitorTask):
monitorTask.start()
def monitor_tasks_start(self,events):
if events == None and len(events) == 0:
return
for event in events:
monitorTask = self.monitor_tasks.get(str(event.monitorId)+'_'+str(event.dbConfig.db_info_id))
print event.monitorId
if event.eventType == None:
break
if event.eventType == 'MONITOR_START':
if monitorTask:
monitorTask.stop()
print 'save start ...'
monitorTask = MonitorTaskProcess(event)
self.monitor_tasks[str(event.monitorId)+'_'+str(event.dbConfig.db_info_id)] = monitorTask
print(self.monitor_tasks)
try:
monitorTask.start()
print 'save end ...'
except Exception as e:
print(e)
else:
if monitorTask:
monitorTask.stop()
monitorTask.terminate()
self.monitor_tasks[str(event.monitorId)+'_'+str(event.dbConfig.db_info_id)] = None
def err_listener(self,cls,event):
if event.exception:
cls.logger.exception('%s error.', str(event.job))
else:
cls.logger.info('%s miss', str(event.job))
def err_listener(self):
self.scheduler.add_listener(self.err_listener, self.apscheduler.events.EVENT_JOB_ERROR | self.apscheduler.events.EVENT_JOB_MISSED)