forked from s3lph/matemat
Fix SIGINT termination issues
This commit is contained in:
parent
18c720fdab
commit
8700023349
3 changed files with 13 additions and 6 deletions
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
from typing import Any, Dict, Iterable, Union
|
from typing import Any, Dict, Iterable, Union
|
||||||
|
|
||||||
from bottle import route, static_file, run
|
|
||||||
import sys
|
import sys
|
||||||
import os.path
|
import os.path
|
||||||
|
import bottle
|
||||||
|
|
||||||
from matemat.db import MatematDatabase
|
from matemat.db import MatematDatabase
|
||||||
|
from matemat.webserver import cron
|
||||||
from matemat.webserver.logger import Logger
|
from matemat.webserver.logger import Logger
|
||||||
from matemat.webserver.config import get_config, parse_config_file
|
from matemat.webserver.config import get_config, parse_config_file
|
||||||
from matemat.webserver.template import init as template_init
|
from matemat.webserver.template import init as template_init
|
||||||
|
@ -59,11 +59,11 @@ def _init(config: Dict[str, Any]):
|
||||||
template_init(config)
|
template_init(config)
|
||||||
|
|
||||||
|
|
||||||
@route('/static/<filename:path>')
|
@bottle.route('/static/<filename:path>')
|
||||||
def serve_static_files(filename: str):
|
def serve_static_files(filename: str):
|
||||||
config = get_config()
|
config = get_config()
|
||||||
staticroot = os.path.abspath(config['staticroot'])
|
staticroot = os.path.abspath(config['staticroot'])
|
||||||
return static_file(filename, root=staticroot)
|
return bottle.static_file(filename, root=staticroot)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -80,8 +80,12 @@ def main():
|
||||||
host: str = config['listen']
|
host: str = config['listen']
|
||||||
port: int = int(str(config['port']))
|
port: int = int(str(config['port']))
|
||||||
|
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
|
from matemat.webserver.pagelets.receipt_smtp_cron import receipt_smtp_cron
|
||||||
# Start the web server
|
# Start the web server
|
||||||
run(host=host, port=port, debug=True)
|
bottle.run(host=host, port=port)
|
||||||
|
# Stop cron
|
||||||
|
cron.shutdown()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -8,6 +8,10 @@ from matemat.webserver import Logger
|
||||||
_CRON_STATIC_EVENT: Event = Event()
|
_CRON_STATIC_EVENT: Event = Event()
|
||||||
|
|
||||||
|
|
||||||
|
def shutdown(*_args, **_kwargs):
|
||||||
|
_CRON_STATIC_EVENT.set()
|
||||||
|
|
||||||
|
|
||||||
class _GlobalEventTimer(Thread):
|
class _GlobalEventTimer(Thread):
|
||||||
"""
|
"""
|
||||||
A timer similar to threading.Timer, except that waits on an externally supplied threading.Event instance,
|
A timer similar to threading.Timer, except that waits on an externally supplied threading.Event instance,
|
||||||
|
|
|
@ -15,4 +15,3 @@ from .moduser import moduser
|
||||||
from .modproduct import modproduct
|
from .modproduct import modproduct
|
||||||
from .userbootstrap import userbootstrap
|
from .userbootstrap import userbootstrap
|
||||||
from .statistics import statistics
|
from .statistics import statistics
|
||||||
from .receipt_smtp_cron import receipt_smtp_cron
|
|
||||||
|
|
Loading…
Reference in a new issue