You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prefect Python程序未按计划执行,启动时自动运行问题求助

Prefect CronSchedule未生效,脚本启动时自动执行Flow的问题解决

问题根源

  • 脚本末尾直接调用leonardo_dicapriflow("Leo")是启动时自动执行的直接原因:这行代码会在脚本运行时立即触发Flow,而非仅完成部署配置。
  • CronSchedule未按预期执行还需排查部署后的调度环境问题。

解决方案

  1. 移除手动触发Flow的代码
    删除脚本最后一行leonardo_dicapriflow("Leo"),让脚本仅负责创建并应用部署配置。修改后代码如下:
from prefect import flow, task, get_run_logger
from prefect.deployments import Deployment
from prefect.orion.schemas.schedules import (
   CronSchedule,
   IntervalSchedule,
   RRuleSchedule,
)

@task(retries=2, retry_delay_seconds=5)
def say_hello():
    print("hello")
    return True

@flow(name="leonardo_dicapriflow")
def leonardo_dicapriflow(name: str):
    say_hello()
    return 

deployment = Deployment.build_from_flow(
   flow=leonardo_dicapriflow,
   name="email-deployment",
   version=1,
   tags=["demo"],
   schedule=CronSchedule(cron=("55 11 3 10 *") )
)
deployment.apply()
  1. 验证Cron表达式有效性
    你的表达式55 11 3 10 *对应每年10月3日11点55分执行,若为测试可改用高频表达式(如*/5 * * * *每5分钟执行一次)快速验证调度是否生效。

  2. 启动对应标签的Prefect Agent
    部署配置完成后,必须启动匹配标签的Agent才能监听并执行定时任务:

prefect agent start --tag demo
  1. 确认Prefect Orion服务运行状态
    确保Orion服务正常启动,否则无法调度定时任务:
prefect orion start

内容的提问来源于stack exchange,提问作者William J Priest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:27:28