riku
2024-01-10 a9e8e27e0503552b7b2a99c821da732175d4f071
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
from apscheduler.triggers.interval import IntervalTrigger
from apscheduler.schedulers.background import BlockingScheduler
from datetime import datetime
 
class MainScheduler(object):
    """
    主线程控制类
    """
 
    def __init__(self) -> None:
        self._scheduler = BlockingScheduler()
 
    def add_task(self, task_func):
        """添加任务,主线程规定每一分钟轮询一次"""
        trigger_interval = IntervalTrigger(minutes=1)
        self._scheduler.add_job(task_func, trigger=trigger_interval, next_run_time=datetime.now(), misfire_grace_time=600)
 
    def start_task(self):
        """开始任务"""
        self._scheduler.start()
 
    def shutdown_task(self):
        """关闭任务"""
        self._scheduler.shutdown()