mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-11-24 00:55:07 +08:00
Add APScheduler as builtin scheduler
This commit is contained in:
parent
2884a58a52
commit
01d6a8cb3c
@ -4,7 +4,18 @@ import none
|
||||
from demo import config
|
||||
|
||||
none.init(config)
|
||||
app = none.get_bot().asgi
|
||||
|
||||
|
||||
@none.scheduler.scheduled_job('interval', seconds=3)
|
||||
async def cb():
|
||||
bot_ = none.get_bot()
|
||||
try:
|
||||
await bot_.send_private_msg(self_id=3281334718,
|
||||
user_id=1002647525,
|
||||
message='哇')
|
||||
except Exception as e:
|
||||
none.logger.exception(e)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
none.load_builtin_plugins()
|
||||
|
@ -9,6 +9,12 @@ from aiocqhttp import CQHttp
|
||||
from aiocqhttp.message import Message
|
||||
|
||||
from .log import logger
|
||||
from .scheduler import Scheduler
|
||||
|
||||
if Scheduler:
|
||||
scheduler = Scheduler()
|
||||
else:
|
||||
scheduler = None
|
||||
|
||||
|
||||
class NoneBot(CQHttp):
|
||||
@ -40,6 +46,9 @@ class NoneBot(CQHttp):
|
||||
async def _(ctx):
|
||||
asyncio.ensure_future(handle_notice_or_request(self, ctx))
|
||||
|
||||
if scheduler:
|
||||
scheduler.configure(self.config.APSCHEDULER_CONFIG)
|
||||
|
||||
def run(self, host: str = None, port: int = None, *args, **kwargs):
|
||||
host = host or self.config.HOST
|
||||
port = port or self.config.PORT
|
||||
@ -88,6 +97,8 @@ def get_bot() -> NoneBot:
|
||||
|
||||
def run(host: str = None, port: int = None, *args, **kwargs) -> None:
|
||||
"""Run the NoneBot instance."""
|
||||
if scheduler and not scheduler.running:
|
||||
scheduler.start()
|
||||
get_bot().run(host=host, port=port, *args, **kwargs)
|
||||
|
||||
|
||||
|
@ -30,3 +30,7 @@ COMMAND_SEP = {'/', '.'}
|
||||
SESSION_EXPIRE_TIMEOUT = timedelta(minutes=5)
|
||||
SESSION_RUNNING_EXPRESSION = '您有命令正在执行,请稍后再试'
|
||||
SHORT_MESSAGE_MAX_LENGTH = 50
|
||||
|
||||
APSCHEDULER_CONFIG = {
|
||||
'apscheduler.timezone': 'Asia/Shanghai'
|
||||
}
|
||||
|
11
none/scheduler.py
Normal file
11
none/scheduler.py
Normal file
@ -0,0 +1,11 @@
|
||||
try:
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
except ImportError:
|
||||
# APScheduler is not installed
|
||||
AsyncIOScheduler = None
|
||||
|
||||
if AsyncIOScheduler:
|
||||
class Scheduler(AsyncIOScheduler):
|
||||
pass
|
||||
else:
|
||||
Scheduler = None
|
Loading…
Reference in New Issue
Block a user