针对apscheduler的版本问题修改
This commit is contained in:
parent
d0dc596eb3
commit
c6480bd144
@ -0,0 +1,52 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
from nonebot import get_driver
|
||||||
|
from nonebot.plugin import PluginMetadata
|
||||||
|
from nonebot.log import LoguruHandler, logger
|
||||||
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||||
|
|
||||||
|
from .config import Config
|
||||||
|
|
||||||
|
__plugin_meta__ = PluginMetadata(
|
||||||
|
name="定时任务",
|
||||||
|
description="APScheduler 定时任务插件",
|
||||||
|
usage=(
|
||||||
|
'声明依赖: `require("nonebot_plugin_apscheduler")\n'
|
||||||
|
"导入调度器: `from nonebot_plugin_apscheduler import scheduler`\n"
|
||||||
|
"添加任务: `scheduler.add_job(...)`\n"
|
||||||
|
),
|
||||||
|
type="library",
|
||||||
|
homepage="https://github.com/nonebot/plugin-apscheduler",
|
||||||
|
config=Config,
|
||||||
|
supported_adapters=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
driver = get_driver()
|
||||||
|
global_config = driver.config
|
||||||
|
plugin_config = Config(**global_config.dict())
|
||||||
|
|
||||||
|
scheduler = AsyncIOScheduler()
|
||||||
|
scheduler.configure(plugin_config.apscheduler_config)
|
||||||
|
|
||||||
|
|
||||||
|
async def _start_scheduler():
|
||||||
|
if not scheduler.running:
|
||||||
|
scheduler.start()
|
||||||
|
logger.opt(colors=True).info("<y>Scheduler Started</y>")
|
||||||
|
|
||||||
|
|
||||||
|
async def _shutdown_scheduler():
|
||||||
|
if scheduler.running:
|
||||||
|
scheduler.shutdown()
|
||||||
|
logger.opt(colors=True).info("<y>Scheduler Shutdown</y>")
|
||||||
|
|
||||||
|
|
||||||
|
if plugin_config.apscheduler_autostart:
|
||||||
|
driver.on_startup(_start_scheduler)
|
||||||
|
driver.on_shutdown(_shutdown_scheduler)
|
||||||
|
|
||||||
|
aps_logger = logging.getLogger("apscheduler")
|
||||||
|
aps_logger.setLevel(plugin_config.apscheduler_log_level)
|
||||||
|
aps_logger.handlers.clear()
|
||||||
|
aps_logger.addHandler(LoguruHandler())
|
||||||
13
.venv/Lib/site-packages/nonebot_plugin_apscheduler/config.py
Normal file
13
.venv/Lib/site-packages/nonebot_plugin_apscheduler/config.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
from pydantic import Field
|
||||||
|
from pydantic_settings import BaseSettings
|
||||||
|
|
||||||
|
|
||||||
|
class Config(BaseSettings):
|
||||||
|
apscheduler_autostart: bool = True
|
||||||
|
apscheduler_log_level: int = 30
|
||||||
|
apscheduler_config: dict = Field(
|
||||||
|
default_factory=lambda: {"apscheduler.timezone": "Asia/Shanghai"}
|
||||||
|
)
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
extra = "ignore"
|
||||||
Loading…
Reference in New Issue
Block a user