针对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