new scheduling logic made linspector thread senseless - removed

This commit is contained in:
Johannes Findeisen 2013-10-27 02:44:47 +01:00
commit ffc754c608

View file

@ -24,18 +24,17 @@ __version__ = "0.11.1"
__default_config__ = "./examples/minimal.json" __default_config__ = "./examples/minimal.json"
import argparse import argparse
import datetime
import logging import logging
import logging.handlers import logging.handlers
import os import os
import os.path as path import os.path as path
import Queue
import time
from linspector.linspector import Linspector
from linspector.core.interface import LinspectorInterface
from linspector.config.parser import FullConfigParser
from linspector.core.scheduler import Scheduler
from linspector.backends.jsonrpc import JsonrpcBackend from linspector.backends.jsonrpc import JsonrpcBackend
from linspector.config.parser import FullConfigParser
from linspector.core.interface import LinspectorInterface
from linspector.core.job import Job
from linspector.core.scheduler import Scheduler
from linspector.frontends.lish import LishFrontend from linspector.frontends.lish import LishFrontend
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -69,6 +68,10 @@ def parse_args():
return parser.parse_args() return parser.parse_args()
def handle_job(jobInfo):
jobInfo.handle_call()
def main(): def main():
args = parse_args() args = parse_args()
@ -90,15 +93,28 @@ def main():
scheduler = Scheduler({"apscheduler.threadpool.max_threads": 1000}) scheduler = Scheduler({"apscheduler.threadpool.max_threads": 1000})
scheduler.start() scheduler.start()
q = Queue.Queue() start_date = datetime.datetime.now()
linspector = Linspector(linConf, core, scheduler, q) time_delta = 0
linspector.daemon = True jobs = []
linspector.start() for layout in linConf.get_enabled_layouts():
for hostgroup in layout.get_hostgroups():
for service in hostgroup.get_services():
for host in hostgroup.get_hosts():
for period in service.get_periods():
time_delta += 2.315379
new_start_date = start_date + datetime.timedelta(seconds=time_delta)
job = Job(service,
host,
hostgroup.get_members(),
hostgroup.get_processors(),
core,
hostgroup)
schedulerJob = period.createJob(scheduler, job, handle_job, start_date=new_start_date)
if schedulerJob is not None:
job.set_job(schedulerJob)
jobs.append(job)
while q.qsize() < 1: interface = LinspectorInterface(jobs, scheduler, linConf)
time.sleep(1)
interface = LinspectorInterface(q.get(), scheduler, linConf)
if "jsonrpc_backend" in core and core["jsonrpc_backend"]: if "jsonrpc_backend" in core and core["jsonrpc_backend"]:
jsonrpc = JsonrpcBackend(interface, core) jsonrpc = JsonrpcBackend(interface, core)
@ -106,6 +122,7 @@ def main():
jsonrpc.start() jsonrpc.start()
# Just for debug purposes: # Just for debug purposes:
#import time
#while True: #while True:
# print "Threads: " + '%d/%d' % (scheduler._threadpool.num_threads, scheduler._threadpool.max_threads) # print "Threads: " + '%d/%d' % (scheduler._threadpool.num_threads, scheduler._threadpool.max_threads)
# time.sleep(0.5) # time.sleep(0.5)