当前位置: 首页>>代码示例>>Python>>正文


Python Scheduler._stopped方法代码示例

本文整理汇总了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)
开发者ID:sdgdsffdsfff,项目名称:cds-monitor-1,代码行数:86,代码来源:monitorScheduler.py


注:本文中的apscheduler.scheduler.Scheduler._stopped方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。