creating jobs inside the worker now; don't know if this is better, feels starting faster now

This commit is contained in:
Johannes Findeisen 2013-12-09 23:23:40 +01:00
commit 0acb6402b0
2 changed files with 12 additions and 13 deletions

View file

@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
__version__ = "0.15/AMNESIA" __version__ = "0.15.1/AMNESIA"
import argparse import argparse
import datetime import datetime
@ -34,7 +34,6 @@ from multiprocessing import cpu_count
from linspector.config.parser import FullConfigParser from linspector.config.parser import FullConfigParser
from linspector.core.interface import LinspectorInterface from linspector.core.interface import LinspectorInterface
from linspector.core.job import LinspectorJob
from linspector.core.worker import LinspectorWorker from linspector.core.worker import LinspectorWorker
from linspector.frontends.lish import LishFrontend from linspector.frontends.lish import LishFrontend
from linspector.tasks.task import TaskExecutor from linspector.tasks.task import TaskExecutor
@ -159,18 +158,9 @@ def main():
time_delta += float(args.delay) time_delta += float(args.delay)
new_start_date = start_date + datetime.timedelta(seconds=time_delta) new_start_date = start_date + datetime.timedelta(seconds=time_delta)
job = LinspectorJob(service,
host,
hostgroup.get_members(),
core,
hostgroup)
worker = workers[instance] worker = workers[instance]
scheduler_job = period.createJob(worker.get_scheduler(), job, worker.handle_job, worker.create_job(jobs, service, host, hostgroup, core, period, start_date=new_start_date)
start_date=new_start_date)
if scheduler_job is not None:
job.set_job(scheduler_job)
jobs.append(job)
instance += 1 instance += 1
if instance == args.instances: if instance == args.instances:

View file

@ -20,6 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from logging import getLogger from logging import getLogger
from multiprocessing import Process from multiprocessing import Process
from linspector.core.job import LinspectorJob
from linspector.core.scheduler import LinspectorScheduler from linspector.core.scheduler import LinspectorScheduler
logger = getLogger(__name__) logger = getLogger(__name__)
@ -47,4 +48,12 @@ class LinspectorWorker(Process):
return self.scheduler return self.scheduler
def shutdown(self, wait=True): def shutdown(self, wait=True):
self.scheduler.shutdown(wait=wait) self.scheduler.shutdown(wait=wait)
def create_job(self, jobs, service, host, hostgroup, core, period, start_date=None):
job = LinspectorJob(service, host, hostgroup.get_members(), core, hostgroup)
scheduler_job = period.createJob(self.scheduler, job, self.handle_job, start_date=start_date)
if scheduler_job is not None:
job.set_job(scheduler_job)
jobs.append(job)