收藏
回答

使用python flask框架中scheduler.add_job,无法执行定时任务?

AppID
prod-8g9yta5la1439b31

为什么这段代码上面的定时任务不执行呢?是什么冲突了吗?也找不到提示的报错内容。

框架:flask

代码:python

系统:alpine:3.13

from apscheduler.schedulers.background import BackgroundScheduler
from wxcloudrun import app
from wxcloudrun.views import fetch_and_store_daily_content
import os


scheduler = BackgroundScheduler(daemon=True)


def job_with_logging():
    with app.app_context():  # 确保任务在应用上下文中运行
        app.logger.info('=== 开始执行每日内容抓取任务 ===')
        try:
            fetch_and_store_daily_content()
            app.logger.info('=== 每日内容抓取任务执行成功 ===')
        except Exception as e:
            app.logger.error(f'!!! 任务执行失败: {str(e)} !!!')


# 添加任务
scheduler.add_job(
    func=job_with_logging,
    trigger='cron',
    hour=18,
    minute=40,
    timezone='Asia/Shanghai',
    id='daily_content_fetch'
)


# 仅在主进程且非重载时启动调度器(防止 Flask 调试模式重复执行)
if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
    with app.app_context():
        scheduler.start()
        app.logger.info(f'定时任务已启动,下次执行时间: {scheduler.get_jobs()[0].next_run_time}')


回答关注问题邀请回答
收藏

1 个回答

  • Alfred Huang
    Alfred Huang
    2天前

    是不是没有配置实例持续运行,实例缩容导致没有定时运行

    2天前
    有用
    回复
登录 后发表内容
问题标签