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()
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()
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)
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)
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
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)