49 lines
1.3 KiB
Python
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")
|