Ejemplo n.º 1
0
def test_job_listener():

    trigger1 = simple_trigger.SimpleTrigger(1, 2)
    time_task1 = task.Task('TimeTask1', time_job.TimeJob(), trigger1,
                           time_job.TimeJobListener('time-job'))
    container.add_task(time_task1)

    trigger2 = simple_trigger.SimpleTrigger(1, 2)
    time_task2 = task.Task('TimeTask2', time_job.TimeJobWithException(),
                           trigger2, time_job.TimeJobListener('exception-job'))
    container.add_task(time_task2)

    container.start_all(True)

    time.sleep(2)  # stop container

    container.stop_all()
Ejemplo n.º 2
0
def test_simple_trigger():
    job1 = time_job.JobA()
    trigger1 = simple_trigger.SimpleTrigger(0, 2)
    task1 = task.Task('TaskA', job1, trigger1)
    container.add_task(task1)
    
    job2 = time_job.JobB()
    trigger2 = simple_trigger.SimpleTrigger(0, 5)
    trigger2.set_delay(5, 0)
    task2 = task.Task('TaskB', job2, trigger2)
    container.add_task(task2)
    
    print 'start at %s' % get_now()
    print '----Start (With Daemon)----'
    container.start_all(True)
    
    time.sleep(11) # pause container
    print '---------Pause All---------'
    container.pasuse_all()
    
    print container.stat_tasks()
    
    time.sleep(10) # restart container
    print '--------Restart All--------'
    container.start_all()
    
    print container.stat_tasks()
    
    time.sleep(11) # stop task
    print '--------Stop Task A--------'
    container.stop('TaskA')
    
    print container.stat_tasks()
    
    time.sleep(10) # restart task
    print '------Start Task A--------'
    container.start('TaskA')
    
    time.sleep(11) # remove task
    print '---------Remove A---------'
    container.remove_task('TaskA')
    
    time.sleep(10) # stop all
    print '---------Stop All---------'
    container.stop_all()
Ejemplo n.º 3
0
 def watch_service(self, services):
     if services == None or not isinstance(services, dict):
         raise IOError('Services list or not dict')
     
     for service in services:
         action = services.get(service)
         if action is not None:
             watch_task = task.Task('%s WatchDog' % service, WatchServiceJob(service, action), simple_trigger.SimpleTrigger(0, 1))
             self.watch_c.add_task(watch_task)
Ejemplo n.º 4
0
 def watch_process(self, processes):
     if processes == None or not isinstance(processes, dict):
         raise IOError('Processes list is None or not dict')
     
     for pid in processes:
         action = processes.get(pid)
         if action is not None:
             watch_task = task.Task('%s WatchDog' % pid, WatchProcessJob(pid, action), simple_trigger.SimpleTrigger(0, 1))
             self.watch_c.add_task(watch_task)
Ejemplo n.º 5
0
def test_cron_trigger():
    
    #start time_job hour=* minute=10-50 second=every 5 seconds 
    trigger_1 = cron_trigger.CronTrigger('0-59/5 10-50 * * * * *')
    trigger_1.set_date(datetime.datetime(2015, 7, 9, 1, 25), datetime.datetime(2015, 7, 10, 1, 40));
    
    task_1 = task.Task('Task_1', time_job.TimeJob(), trigger_1)
    container.add_task(task_1)
    
    #start hello_job hour=* minute=15-45 second=every 22 seconds 
    trigger_2 = cron_trigger.CronTrigger('0-59/22 15-45 * * * * *')
    trigger_2.set_date(datetime.datetime(2015, 7, 9, 1, 25));
    
    task_2 = task.Task('Task_2', hello_job.HelloJob(), trigger_2)
    container.add_task(task_2)

    print '---------Start---------'
    container.start_all()
 def add_task(self, name, user_id, project_id):
     task = task_entity.Task(name, user_id, project_id)
     user_store = self.tasks.get(user_id) if user_id in self.tasks else {}
     user_store[task.id] = task
     self.tasks[user_id] = user_store
Ejemplo n.º 7
0
    def __load_task(self, conf):
        self.container = task_container.TaskContainer()

        # CPU监控
        if self.conf.get(conf, 'cpu_monitor', 'true') == 'true':
            cpu_threshold = self.conf.get(conf, 'cpu_usage', 80.0)
            cpu_interval = self.conf.get(conf, 'cpu_interval', 60)
            cpu_task = task.Task('cpu_monitor',
                                 linux.CPUMonitor(cpu_threshold),
                                 simple_trigger.SimpleTrigger(0, cpu_interval))
            self.container.add_task(cpu_task)

        # Memory 内存监控
        if self.conf.get(conf, 'memory_monitor', 'true') == 'true':
            memory_threshold = self.conf.get(conf, 'memory_usage', 80.0)
            memory_interval = self.conf.get(conf, 'memory_interval', 60)
            memory_task = task.Task(
                'Memory_Monitor', linux.MemoryMonitor(memory_threshold),
                simple_trigger.SimpleTrigger(0, memory_interval))
            self.container.add_task(memory_task)

        # Store 存储监控 (挂载点监控)
        if self.conf.get(conf, 'store_monitor', 'true') == 'true':
            store_mount = self.conf.get(conf, 'store_mount', '/')
            store_threshold = self.conf.get(conf, 'store_usage', '80.0')
            store_interval = self.conf.get(conf, 'store_interval', 60)
            store_task = task.Task(
                'store_monitor', linux.DiskMonitor(store_mount,
                                                   store_threshold),
                simple_trigger.SimpleTrigger(0, store_interval))
            self.container.add_task(store_task)

        # Processor 本地进程监控
        if self.conf.get(conf, 'processor_monitor', 'true') == 'true':
            process_interval = self.conf.get(conf, 'process_interval', 60)
            process_pid = self.conf.get(conf, 'process_pid', None)
            if process_pid is not None:
                process_task = task.Task(
                    'process_monitor', linux.ProcessMonitor(process_pid),
                    simple_trigger.SimpleTrigger(0, process_interval))
                self.container.add_task(process_task)

        # LocalService 本地服务监控
        if self.conf.get(conf, 'service_monitor', 'true') == 'true':
            service_interval = self.conf.get(conf, 'service_interval', 60)
            service_ports = self.conf.get(conf, 'service_ports', None)
            service_recvq = self.conf.get(conf, 'service_recvq', None)
            if service_ports is not None:
                service_task = task.Task(
                    'service_monitor',
                    linux.ServiceMonitor(service_ports, service_recvq),
                    simple_trigger.SimpleTrigger(0, service_interval))
                self.container.add_task(service_task)

        # HostPing 主机存在监控
        if self.conf.get(conf, 'host_monitor', 'true') == 'true':
            host_interval = self.conf.get(conf, 'host_interval', 60)
            host_address = self.conf.get(conf, 'host_address', None)
            host_timeout = self.conf.get(conf, 'host_timeout', 10)
            if host_address is not None:
                host_task = task.Task(
                    'host_monitor',
                    net.HostPingMonitor(host_address, host_timeout),
                    simple_trigger.SimpleTrigger(0, host_interval))
                self.container.add_task(host_task)