modify: 文档补充 Plugin 基类自动建库用法
This commit is contained in:
@@ -80,18 +80,34 @@ finally:
|
||||
|
||||
### 插件中的典型用法
|
||||
|
||||
推荐通过 `Plugin` 基类自动建库(`db_name` 指定文件名,`data_dir` 取自运行时配置),
|
||||
`on_init` 中即可拿到 `self.db`:
|
||||
|
||||
```python
|
||||
# src/plugins/<name>/__init__.py
|
||||
from chongming_worker.plugin import Plugin
|
||||
|
||||
class MyPlugin(Plugin):
|
||||
type = "<name>"
|
||||
db_name = "<name>.db" # 基类自动在 data_dir 下建库并建表
|
||||
|
||||
async def on_init(self):
|
||||
db = self.db # 已由基类 init_database() 初始化
|
||||
self.set_var("db", db) # 发布到 global_var 供业务代码读取
|
||||
...
|
||||
|
||||
# cleanup 时基类自动 dispose(无需手写)
|
||||
```
|
||||
|
||||
不依赖基类时也可手动使用:
|
||||
|
||||
```python
|
||||
from pathlib import Path
|
||||
from chongming_database import Database
|
||||
from .global_var import set_db
|
||||
|
||||
async def create_workers(session, config, count, worker_manager):
|
||||
db_path = Path(config.get("data_dir", "./data")) / "<name>.db"
|
||||
db = Database(db_path)
|
||||
await db.initialize()
|
||||
set_db(db)
|
||||
...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user