Files
meijiaka-zy/python-api/app/scheduler/main.py
T

49 lines
1.3 KiB
Python

"""
Async Engine 独立进程入口
=========================
usage: python -m app.scheduler.main
"""
import asyncio
import logging
import sys
from app.scheduler.engine import AsyncEngine
from app.scheduler.handlers.avatar_handler import AvatarHandler
from app.scheduler.handlers.copy_handler import CopyHandler
from app.scheduler.handlers.image_handler import ImageHandler
from app.scheduler.handlers.script_handler import ScriptHandler
from app.scheduler.handlers.subtitle_handler import SubtitleHandler
from app.scheduler.handlers.video_handler import VideoHandler
logger = logging.getLogger("scheduler")
def setup_logging() -> None:
log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
logging.basicConfig(
level=logging.INFO,
format=log_format,
handlers=[logging.StreamHandler(sys.stdout)],
)
async def main() -> None:
setup_logging()
engine = AsyncEngine()
engine.register(VideoHandler())
engine.register(AvatarHandler())
engine.register(ImageHandler())
engine.register(SubtitleHandler())
engine.register(CopyHandler())
engine.register(ScriptHandler())
await engine.run_forever(interval=10.0, min_interval=2.0)
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
logger.info("Scheduler stopped by user")