diff --git a/booking_service.py b/booking_service.py index 65951de..ced509a 100755 --- a/booking_service.py +++ b/booking_service.py @@ -38,9 +38,11 @@ def main(host, port, db, interval, debug, tz, special, logging.basicConfig( level=level, - # format='%(asctime)s %(levelname)s: %(message)s', + format='%(levelname)s: %(name)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S') + logger = logging.getLogger("booking_service") + db_mngr = model.DatabaseManager(db) db_mngr.create_schema() @@ -55,12 +57,15 @@ def main(host, port, db, interval, debug, tz, special, wrk.start() app = interface.App(db_mngr, mail, base_url=url) - loop.create_task(app.register_server(host, port)) + loop.create_task(app.start(host, port)) def stop(): + logger.info("Stop Punkow ... ") + async def _do_stop(): await asyncio.gather(wrk.stop(), app.stop()) loop.stop() + logger.info("Goodbye!") loop.create_task(_do_stop()) diff --git a/punkow/service/interface.py b/punkow/service/interface.py index bbcd066..e95bb29 100644 --- a/punkow/service/interface.py +++ b/punkow/service/interface.py @@ -269,7 +269,7 @@ class App(object): def run(self, host: str = None, port: int = None): web.run_app(self.app, host=host, port=port) - async def register_server(self, host: str = None, port: int = None): + async def start(self, host: str = None, port: int = None): app_runner = web.AppRunner(self.app, access_log=logger) await app_runner.setup() self.site = web.TCPSite(app_runner, host, port) diff --git a/punkow/service/timer.py b/punkow/service/timer.py index 301be42..c7a0b0a 100644 --- a/punkow/service/timer.py +++ b/punkow/service/timer.py @@ -78,7 +78,7 @@ class Timer(object): elapsed = (end - start).total_seconds() sleep = max(0.0, self._wait_time(end) - elapsed) logger.debug("Booking run completed in %0.2f seconds - now sleep for %0.2f seconds", elapsed, sleep) - self._sleep_coro = asyncio.sleep(sleep) + self._sleep_coro = asyncio.ensure_future(asyncio.sleep(sleep)) try: await self._sleep_coro except asyncio.CancelledError: diff --git a/punkow/service/worker.py b/punkow/service/worker.py index e9d8663..d38aeec 100644 --- a/punkow/service/worker.py +++ b/punkow/service/worker.py @@ -208,5 +208,7 @@ class Worker(object): self._running = False if self._run_future is not None: + self._timer.cancel() + await self._run_future self._run_future = None