You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
809 B
34 lines
809 B
"""
|
|
main.py — Ingestion worker entry point.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import asyncio
|
|
import logging
|
|
import sys
|
|
|
|
from settings import Settings
|
|
from watcher import run_watcher
|
|
|
|
|
|
def setup_logging(level: str) -> None:
|
|
logging.basicConfig(
|
|
level=getattr(logging, level.upper(), logging.INFO),
|
|
format='%(asctime)s [%(levelname)s] %(name)s: %(message)s',
|
|
datefmt='%Y-%m-%dT%H:%M:%S',
|
|
stream=sys.stdout,
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
settings = Settings()
|
|
setup_logging(settings.log_level)
|
|
logger = logging.getLogger('ingestion-worker')
|
|
logger.info('Starting ingestion worker (vault=%s)', settings.vault_path)
|
|
|
|
try:
|
|
asyncio.run(run_watcher(settings))
|
|
except KeyboardInterrupt:
|
|
logger.info('Ingestion worker stopped.')
|