Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/core/extra/scheduler.py
2023-09-03 16:50:12 +08:00

42 lines
1.4 KiB
Python

import importlib
import os
import traceback
from core.logger import Logger
from core.scheduler import Scheduler, IntervalTrigger
from database import BotDBUtil
load_dir_path = os.path.abspath('./schedulers/')
def load_extra_schedulers():
@Scheduler.scheduled_job(IntervalTrigger(hours=12))
async def clear_queue():
Logger.info('Clearing job queue...')
BotDBUtil.JobQueue.clear()
Logger.info('Job queue cleared.')
fun_file = None
dir_list = os.listdir(load_dir_path)
Logger.info('Attempting to load schedulers...')
for file_name in dir_list:
try:
file_path = os.path.join(load_dir_path, file_name)
fun_file = None
if os.path.isdir(file_path):
if file_name[0] != '_':
fun_file = file_name
elif os.path.isfile(file_path):
if file_name[0] != '_' and file_name.endswith('.py'):
fun_file = file_name[:-3]
if fun_file is not None:
Logger.debug(f'Loading schedulers.{fun_file}...')
modules = 'schedulers.' + fun_file
importlib.import_module(modules)
Logger.debug(f'Succeeded loaded schedulers.{fun_file}!')
except Exception:
tb = traceback.format_exc()
errmsg = f'Failed to load schedulers.{fun_file}: \n{tb}'
Logger.error(errmsg)
Logger.info('All schedulers loaded.')