feat:飞书文档补全
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import schedule
|
||||
import time
|
||||
from datetime import datetime
|
||||
from typing import Callable, Optional
|
||||
from .tb_config import TBConfig
|
||||
|
||||
class TaskScheduler:
|
||||
def __init__(self, config: TBConfig):
|
||||
self.config = config
|
||||
self.scheduler_config = config.get_scheduler_TBConfig()
|
||||
self.running = False
|
||||
|
||||
def schedule_task(self, task_func: Callable, interval_minutes: int = None):
|
||||
if interval_minutes is None:
|
||||
interval_minutes = self.scheduler_config.get('interval_minutes', 30)
|
||||
|
||||
schedule.every(interval_minutes).minutes.do(task_func)
|
||||
print(f"已设置定时任务,每 {interval_minutes} 分钟执行一次")
|
||||
|
||||
def schedule_at_time(self, task_func: Callable, time_str: str):
|
||||
schedule.every().day.at(time_str).do(task_func)
|
||||
print(f"已设置定时任务,每天 {time_str} 执行")
|
||||
|
||||
def start(self):
|
||||
self.running = True
|
||||
print("定时任务调度器已启动...")
|
||||
print("按 Ctrl+C 停止")
|
||||
|
||||
try:
|
||||
while self.running:
|
||||
schedule.run_pending()
|
||||
time.sleep(1)
|
||||
except KeyboardInterrupt:
|
||||
print("\n定时任务调度器已停止")
|
||||
self.running = False
|
||||
|
||||
def stop(self):
|
||||
self.running = False
|
||||
schedule.clear()
|
||||
|
||||
def run_once(self, task_func: Callable):
|
||||
print(f"执行一次性任务: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
||||
task_func()
|
||||
Reference in New Issue
Block a user