⚡ 初始提交 - FutureOSS v1.0 插件化运行时框架
一切皆为插件的开发者工具运行时框架
🧩 核心特性:
- 插件热插拔 (importlib 动态加载)
- 依赖自动解析 (拓扑排序 + 循环检测)
- 企业级稳定 (熔断/降级/重试/隔离)
- 事件驱动 (发布/订阅事件总线)
- 完整配置 (YAML 配置 + 热重载)
This commit is contained in:
56
oss/cli.py
Normal file
56
oss/cli.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""CLI 入口"""
|
||||
import click
|
||||
import signal
|
||||
|
||||
from oss import __version__
|
||||
from oss.logger.logger import Logger
|
||||
from oss.plugin.manager import PluginManager
|
||||
|
||||
|
||||
@click.group()
|
||||
def cli():
|
||||
"""Future OSS - 一切皆为插件"""
|
||||
pass
|
||||
|
||||
|
||||
@cli.command()
|
||||
def serve():
|
||||
"""启动 Future OSS"""
|
||||
log = Logger()
|
||||
log.info(f"Future OSS {__version__} 启动")
|
||||
|
||||
plugin_mgr = PluginManager()
|
||||
plugin_mgr.load()
|
||||
plugin_mgr.start()
|
||||
|
||||
log.info("就绪")
|
||||
|
||||
def shutdown(sig, frame):
|
||||
log.info("停止中...")
|
||||
plugin_mgr.stop()
|
||||
log.info("已停止")
|
||||
raise SystemExit(0)
|
||||
|
||||
signal.signal(signal.SIGINT, shutdown)
|
||||
signal.signal(signal.SIGTERM, shutdown)
|
||||
|
||||
try:
|
||||
signal.pause()
|
||||
except AttributeError:
|
||||
import time
|
||||
while True:
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
@cli.command()
|
||||
def version():
|
||||
"""显示版本"""
|
||||
click.echo(f"Future OSS {__version__}")
|
||||
|
||||
|
||||
def main():
|
||||
cli()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user