modify: mqtt 插件返回问题
This commit is contained in:
+16
-2
@@ -33,22 +33,36 @@ auto_bind_models("example")
|
||||
# 详见 src/chongming/app/__init__.py 的 lifespan。
|
||||
|
||||
|
||||
# 幂等标记:防止 create_workers 被重复调用时重复初始化数据库等资源
|
||||
_initialized = False
|
||||
|
||||
|
||||
async def create_workers(session, config, count=1, worker_manager=None):
|
||||
"""插件入口 — 委托给 chongming_worker 运行时创建 Worker 协程"""
|
||||
global _initialized
|
||||
if _initialized:
|
||||
print("[example] create_workers 重复调用,跳过重复初始化")
|
||||
return _create_workers(session, config, count, worker_manager)
|
||||
|
||||
from .global_var import set_global_var
|
||||
from chongming_database import Database
|
||||
|
||||
|
||||
db_path = Path(config.get("data_dir", "./data")) / "example.db"
|
||||
|
||||
db = Database(db_path)
|
||||
await db.initialize()
|
||||
set_global_var("db", db)
|
||||
|
||||
_initialized = True
|
||||
return _create_workers(session, config, count, worker_manager)
|
||||
|
||||
|
||||
async def cleanup(worker_item: str):
|
||||
from .global_var import db
|
||||
global _initialized
|
||||
from .global_var import db, set_global_var
|
||||
|
||||
if db is not None:
|
||||
await db.dispose()
|
||||
set_global_var("db", None)
|
||||
_initialized = False
|
||||
print(f"{worker_item} 清理完毕")
|
||||
|
||||
Reference in New Issue
Block a user