archive
/
actioner
Archived
1
Fork 0
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
actioner/actioner/main.py

42 lines
1.1 KiB
Python
Raw Normal View History

2019-08-30 22:20:32 +01:00
import argparse
import logging
2019-02-14 14:27:04 +00:00
from multiprocessing import Process
2019-02-17 17:14:17 +00:00
import sentry_sdk
2019-08-30 22:20:32 +01:00
from apscheduler.util import get_callable_name
2019-02-22 22:31:25 +00:00
from sentry_sdk.integrations.aiohttp import AioHttpIntegration
2019-02-14 14:27:04 +00:00
2019-08-30 19:33:32 +01:00
from actioner.scheduler import create_scheduler
2019-02-17 17:14:17 +00:00
from actioner.settings import LOGGING_LEVEL, SENTRY_DSN
2019-08-30 21:42:58 +01:00
from actioner.web import get_server, run_server
2019-08-30 22:20:32 +01:00
logger = logging.getLogger(__name__)
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--once", action="store_true")
return parser.parse_args()
2019-02-14 14:27:04 +00:00
2019-02-14 13:45:46 +00:00
def main():
logging.basicConfig(level=LOGGING_LEVEL)
2019-02-14 19:37:17 +00:00
2019-02-22 22:36:17 +00:00
sentry_sdk.init(dsn=SENTRY_DSN, integrations=[AioHttpIntegration()])
2019-02-17 17:14:17 +00:00
2019-08-30 22:20:32 +01:00
args = parse_args()
if args.once:
scheduler = create_scheduler()
jobs = {job.func for job in scheduler.get_jobs()}
for job in jobs:
logger.info("Executing '{}'".format(get_callable_name(job)))
job()
else:
Process(target=run_server, args=(get_server(),)).start()
Process(target=create_scheduler().start).start()
2019-02-14 13:45:46 +00:00
2019-02-22 22:36:17 +00:00
if __name__ == "__main__":
2019-02-14 13:45:46 +00:00
main()