python实现自动化定时任务

1、demo如下

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.executors.pool import ProcessPoolExecutor, ThreadPoolExecutor
import pytz
import logging
import time

# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('apscheduler')


# 定义示例任务函数
def task1():
    logger.info("任务1执行中...")


def task2():
    logger.info("任务2执行中...")


def task3():
    logger.info("任务3执行中...")


# 创建调度器
executors = {
    'default': ProcessPoolExecutor(max_workers=20),
    'threadPool': ThreadPoolExecutor(max_workers=20)
}
tz = pytz.timezone('Asia/Shanghai')
scheduler = BackgroundScheduler(executors=executors, timezone=tz)

# 添加定时任务
scheduler.add_job(task1, trigger='interval', seconds=5, max_instances=1, executor='threadPool')
scheduler.add_job(task2, trigger='interval', minutes=1, max_instances=1, executor='threadPool')
scheduler.add_job(task3, trigger='interval', seconds=30, max_instances=1, executor='threadPool')

# 启动调度器
scheduler.start()
logger.info('调度器已启动')

try:
    # 保持程序运行
    while True:
        time.sleep(1)
except (KeyboardInterrupt, SystemExit):
    # 关闭调度器
    scheduler.shutdown()
    logger.info('调度器已关闭')
posted @ 2025-05-20 11:29  harrylearn66666  阅读(11)  评论(0)    收藏  举报