Multiprocessing adjustments and optimizations. (0.21.3)
This commit is contained in:
parent
cef5cea8f7
commit
1b14770a50
4 changed files with 17 additions and 13 deletions
11
README.md
11
README.md
|
|
@ -72,12 +72,9 @@ function / method.
|
|||
|
||||
Currently, the Linspector core requires the following 3rd party libraries:
|
||||
|
||||
- [APScheduler](https://pypi.org/project/APScheduler/)- Apscheduler is the scheduler used in
|
||||
Linspector for the execution of monitors. I started
|
||||
to use this library in very early versions of Linspector in 2011. Since the main task
|
||||
in Linspector is the execution of jobs in regularly intervals I believe it is the right
|
||||
decision to make use of APScheduler directly in the core of the Linspector project.
|
||||
- [Loguru](https://pypi.org/project/loguru/) - Linspector uses Loguru for file based logging. Loguru is a library
|
||||
- [APScheduler](https://pypi.org/project/APScheduler/)- APScheduler is a Python library that lets you
|
||||
schedule your Python code to be executed later, either just once or periodically.
|
||||
- [Loguru](https://pypi.org/project/loguru/) - Linspector uses Loguru for all logging stuff. Loguru is a library
|
||||
which aims to bring enjoyable logging in Python.
|
||||
|
||||
### Other used libraries
|
||||
|
|
@ -182,7 +179,7 @@ Linspector is open-source and completely free and will always be.
|
|||
|
||||
### MIT license
|
||||
|
||||
Copyright (c) 2013 - 2022 Johannes Findeisen
|
||||
Copyright (c) 2013 - 2023 Johannes Findeisen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
|||
|
|
@ -11,13 +11,14 @@ import argparse
|
|||
import signal
|
||||
import sys
|
||||
|
||||
from loguru import logger
|
||||
|
||||
from linspector.configuration import Configuration
|
||||
from linspector.environment import Environment
|
||||
from linspector.linspector import Linspector
|
||||
from linspector.monitors import Monitors
|
||||
from loguru import logger
|
||||
|
||||
__version__ = '0.21.2'
|
||||
__version__ = '0.21.3'
|
||||
__author__ = 'Johannes Findeisen <you@hanez.org>'
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import random
|
|||
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
|
||||
from apscheduler.jobstores.memory import MemoryJobStore
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from pytz import utc
|
||||
|
||||
|
||||
def job_execution(log, monitor):
|
||||
|
|
@ -64,16 +65,20 @@ class Linspector:
|
|||
if configuration.get_option('linspector', 'scheduler_mode'):
|
||||
if configuration.get_option('linspector', 'scheduler_mode') == 'process':
|
||||
executors = {
|
||||
'default': ProcessPoolExecutor(int(configuration.get_option('linspector',
|
||||
'max_processes')))
|
||||
'default': ThreadPoolExecutor(
|
||||
int(configuration.get_option('linspector', 'max_threads'))),
|
||||
'processpool': ProcessPoolExecutor(
|
||||
int(configuration.get_option('linspector', 'max_processes')))
|
||||
}
|
||||
job_defaults = {
|
||||
'coalesce': True,
|
||||
# every scheduler job (monitor) must only exist once.
|
||||
'max_instances': 1
|
||||
}
|
||||
self.__scheduler['linspector'] = BackgroundScheduler(jobstores=jobstores,
|
||||
executors=executors,
|
||||
job_defaults=job_defaults)
|
||||
job_defaults=job_defaults,
|
||||
timezone=utc)
|
||||
|
||||
start_date = datetime.datetime.now()
|
||||
log.debug(monitors.get_monitors())
|
||||
|
|
|
|||
|
|
@ -7,10 +7,11 @@ paramiko==3.0.0
|
|||
pydantic==1.10.5
|
||||
pysnmp==4.4.12
|
||||
python-gammu==3.2.4
|
||||
pytz~=2022.7.1
|
||||
requests==2.28.2
|
||||
rich==13.3.1
|
||||
syslog2==0.5.0
|
||||
textual==0.11.1
|
||||
typer==0.7.0
|
||||
uvicorn==0.20.0
|
||||
xmpp2==0.4
|
||||
xmpp2==0.4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue