# 工作流时间分布节点汇总 > 快照日期:2026-09-21
> 配置时区:`Asia/Shanghai`
> 配置来源:`config/workflows.json`、`config/schedules.json`
> 统计范围:当前工作树中的全部工作流与调度计划 ## 1. 统计口径 - “工作流”以 `config/workflows.json` 中的 `workflows` 为准;当前 35 条全部是 `scheduled` 工作流。 - “时间节点”指同一时区下去重后的墙上时钟时间,例如 `10:00` 是一个节点。 - “启动项”指一条工作流与一个时间的组合;`at` 为数组时逐个展开。因此两个“每小时整点”计划各贡献 24 个启动项。 - 暂停计划仍保留在时间分布中,并标记为“暂停”,因为它们仍是有效配置项;只有“启用”计划才会被调度器实际触发。 - `enabled` 未填写时,按目录校验规则视为启用。 - “业务日偏移”保留配置中的 `business_date_offset_days` 原值,不把它解释成自然日执行时间。 ## 2. 总览 | 指标 | 数值 | | --- | ---: | | 工作流总数 | 35 | | 调度计划总数 | 35 | | 启用工作流 | 22 | | 暂停工作流 | 13 | | 展开后的启动项 | 82 | | 启用启动项 | 69 | | 暂停启动项 | 13 | | 独立时间节点 | 30 | | 配置时区 | `Asia/Shanghai` | ### 2.1 按模块统计 | 模块 | 工作流数 | 启用 | 暂停 | | --- | ---: | ---: | ---: | | 内容营销(`content_marketing`) | 9 | 3 | 6 | | 商品经营(`product_commerce`) | 12 | 12 | 0 | | 店铺洞察(`shop_intelligence`) | 10 | 4 | 6 | | 供应链(`supply_chain`) | 4 | 3 | 1 | | **合计** | **35** | **22** | **13** | ### 2.2 按计划类型统计 | 计划类型 | 工作流数 | 启用 | 暂停 | | --- | ---: | ---: | ---: | | 每天(`daily`) | 19 | 12 | 7 | | 每周(`weekly`) | 9 | 5 | 4 | | 每月(`monthly`) | 4 | 2 | 2 | | 间隔天数(`interval_days`) | 3 | 3 | 0 | | **合计** | **35** | **22** | **13** | ## 3. 时间分布节点 下表按一天内的时钟时间排序。每个节点的“启动项数”包含暂停计划;“启用数”才是当前会被调度器执行的数量。 | 时间节点 | 启动项数 | 启用数 | 暂停数 | 工作流 | | --- | ---: | ---: | ---: | --- | | `00:00` | 2 | 2 | 0 | 抖音待改价申诉 [`shop.douyin_price_appeal`];天猫百亿补贴批量报名 [`product.tmall_baibu_apply`] | | `01:00` | 3 | 3 | 0 | 内容指标日报采集 [`content.metrics.daily`];抖音待改价申诉;天猫百亿补贴批量报名 | | `02:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `03:00` | 3 | 2 | 1 | 京东客服消息采集 [`shop.jd_customer_service.daily`](暂停);抖音待改价申诉;天猫百亿补贴批量报名 | | `03:10` | 1 | 0 | 1 | 抖音客服消息采集 [`shop.douyin_customer_service.daily`](暂停) | | `03:20` | 2 | 0 | 2 | 抖音品退采集 [`shop.douyin_after_sales_quality.daily`](暂停);抖音差评采集 [`shop.dy_negative_reviews.daily`](暂停) | | `03:30` | 1 | 0 | 1 | 京东差评采集 [`shop.jd_negative_reviews.daily`](暂停) | | `04:00` | 3 | 2 | 1 | 京东品退问题采集 [`shop.jd_after_sales_issues.daily`](暂停);抖音待改价申诉;天猫百亿补贴批量报名 | | `05:00` | 3 | 3 | 0 | 内容指标日报采集;抖音待改价申诉;天猫百亿补贴批量报名 | | `06:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `07:00` | 3 | 3 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名;补货预警日处理 [`supply.replenishment_alert.daily`] | | `08:00` | 5 | 3 | 2 | 内容月度汇总 [`content.summary.monthly`](暂停);抖音待改价申诉;天猫百亿补贴批量报名;采购确认日处理 [`supply.purchase_confirmation.daily`];补货建议周处理 [`supply.replenishment.weekly`](暂停) | | `08:30` | 2 | 1 | 1 | 达人月报生成 [`content.creator_report.monthly`](暂停);京东与天猫主图周采集 [`product.main_image.weekly`] | | `08:40` | 1 | 1 | 0 | 商品经营日报采集 [`product.daily`] | | `09:00` | 6 | 6 | 0 | 笔记清单与合作同步 [`content.notes_master.daily`];京东自营业绩日采集 [`shop.jd_self_operated.daily`];抖音待改价申诉;聚水潭全店铺款式日报 [`product.erp_all_shop_daily`];天猫百亿补贴批量报名;补货建议预计到货同步 [`supply.replenishment_arrival_sync.daily`] | | `10:00` | 8 | 5 | 3 | 营销日报生成与发送 [`content.marketing_report.daily`](暂停);内容平台登录态刷新 [`content.relogin.weekly`](暂停);内容周度汇总 [`content.summary.weekly`](暂停);抖音待改价申诉;三平台电商费用采集 [`product.ecommerce_costs.daily`];商品月度销量表 [`product.sales_sheet.daily`];天猫百亿补贴批量报名;市场排行周采集 [`product.market_rank`] | | `11:00` | 3 | 3 | 0 | 抖音待改价申诉;款式周期分析 [`product.style_analysis.interval`];天猫百亿补贴批量报名 | | `12:00` | 5 | 5 | 0 | 多平台评论周采集 [`content.comments.weekly`];店铺经营指标周采集 [`shop.metrics.weekly`];抖音待改价申诉;商品人群画像日采集 [`product.persona.daily`];天猫百亿补贴批量报名 | | `12:30` | 1 | 1 | 0 | 竞店指标周采集 [`shop.competitor.weekly`] | | `13:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `14:00` | 5 | 4 | 1 | 内容指标补采 [`content.metrics.backfill`](暂停);抖音待改价申诉;上传所选天猫店铺短视频 [`product.video_upload`];扫描新增视频并发布到京东 [`product.jd_video_upload`];天猫百亿补贴批量报名 | | `15:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `16:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `17:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `18:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `19:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `20:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `21:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `22:00` | 2 | 2 | 0 | 抖音待改价申诉;天猫百亿补贴批量报名 | | `23:00` | 3 | 3 | 0 | 抖音待改价申诉;商品销量异常告警 [`product.alert.daily`];天猫百亿补贴批量报名 | ### 3.1 时间节点特征 - `00:00`–`23:00` 的 24 个整点节点全部被覆盖,基础来源是两个每小时整点计划:抖音待改价申诉、天猫百亿补贴批量报名。 - 最拥挤的节点是 `10:00`:共 8 个启动项,其中 5 个启用、3 个暂停。 - 其次是 `09:00`:6 个启动项,全部启用;`08:00`、`12:00`、`14:00` 各 5 个启动项。 - 非整点节点共有 5 个:`03:10`、`03:30`、`08:30`、`08:40`、`12:30`。其中 `03:10`、`03:30` 的唯一计划当前暂停。 ## 4. 按工作流分类的调度清单 ### 4.1 内容营销(`content_marketing`,9 条) - 指标采集:`content.metrics.daily`(内容指标日报采集)、`content.metrics.backfill`(内容指标补采)。 - 报告与汇总:`content.marketing_report.daily`(营销日报生成与发送)、`content.creator_report.monthly`(达人月报生成)、`content.summary.monthly`(内容月度汇总)、`content.summary.weekly`(内容周度汇总)。 - 内容同步与互动:`content.notes_master.daily`(笔记清单与合作同步)、`content.comments.weekly`(多平台评论周采集)、`content.relogin.weekly`(内容平台登录态刷新)。 ### 4.2 商品经营(`product_commerce`,12 条) - 日报、经营与费用:`product.daily`(商品经营日报采集)、`product.erp_all_shop_daily`(聚水潭全店铺款式日报)、`product.ecommerce_costs.daily`(三平台电商费用采集)、`product.sales_sheet.daily`(商品月度销量表)、`product.alert.daily`(商品销量异常告警)、`product.market_rank`(市场排行周采集)。 - 人群、款式与主图:`product.persona.daily`(商品人群画像日采集)、`product.style_analysis.interval`(款式周期分析)、`product.main_image.weekly`(京东与天猫主图周采集)。 - 视频与报名:`product.video_upload`(上传所选天猫店铺短视频)、`product.jd_video_upload`(扫描新增视频并发布到京东)、`product.tmall_baibu_apply`(天猫百亿补贴批量报名)。 ### 4.3 店铺洞察(`shop_intelligence`,10 条) - 店铺与竞店经营:`shop.metrics.weekly`(店铺经营指标周采集)、`shop.competitor.weekly`(竞店指标周采集)、`shop.jd_self_operated.daily`(京东自营业绩日采集)。 - 客服、评价与申诉:`shop.jd_customer_service.daily`(京东客服消息采集)、`shop.jd_negative_reviews.daily`(京东差评采集)、`shop.jd_after_sales_issues.daily`(京东品退问题采集)、`shop.douyin_customer_service.daily`(抖音客服消息采集)、`shop.douyin_after_sales_quality.daily`(抖音品退采集)、`shop.dy_negative_reviews.daily`(抖音差评采集)、`shop.douyin_price_appeal`(抖音待改价申诉)。 ### 4.4 供应链(`supply_chain`,4 条) - 采购与补货:`supply.purchase_confirmation.daily`(采购确认日处理)、`supply.replenishment.weekly`(补货建议周处理)、`supply.replenishment_alert.daily`(补货预警日处理)、`supply.replenishment_arrival_sync.daily`(补货建议预计到货同步)。 ### 4.5 全量调度明细 “步骤数”是 `config/workflows.json` 中该工作流的执行步骤数量,不代表执行时长。 | # | 工作流 ID | 工作流名称 / 主要用途 | 模块 | 调度规则 | 业务日偏移 | 状态 | 步骤数 | | ---: | --- | --- | --- | --- | ---: | --- | ---: | | 1 | `content.metrics.daily` | 内容指标日报采集 | 内容营销 | 每天 `01:00`、`05:00` | 0 | 启用 | 5 | | 2 | `content.metrics.backfill` | 内容指标补采 | 内容营销 | 每周一 `14:00` | 0 | 暂停 | 2 | | 3 | `content.marketing_report.daily` | 营销日报生成与发送 | 内容营销 | 每天 `10:00` | 0 | 暂停 | 1 | | 4 | `content.relogin.weekly` | 内容平台登录态刷新 | 内容营销 | 每周五 `10:00` | 0 | 暂停 | 1 | | 5 | `content.creator_report.monthly` | 达人月报生成 | 内容营销 | 每月 1 日 `08:30` | 0 | 启用 | 1 | | 6 | `content.summary.monthly` | 内容月度汇总 | 内容营销 | 每月 1 日 `08:00` | 0 | 启用 | 1 | | 7 | `content.notes_master.daily` | 笔记清单与合作同步 | 内容营销 | 每天 `09:00` | 0 | 启用 | 1 | | 8 | `content.comments.weekly` | 多平台评论周采集 | 内容营销 | 每周日 `12:00` | 0 | 启用 | 3 | | 9 | `content.summary.weekly` | 内容周度汇总 | 内容营销 | 每周二 `10:00` | 0 | 启用 | 1 | | 10 | `shop.metrics.weekly` | 店铺经营指标周采集 | 店铺洞察 | 每周一 `12:00` | 0 | 启用 | 3 | | 11 | `shop.competitor.weekly` | 竞店指标周采集 | 店铺洞察 | 每周一 `12:30` | 0 | 启用 | 2 | | 12 | `shop.jd_self_operated.daily` | 京东自营业绩日采集 | 店铺洞察 | 每天 `09:00` | -2 | 启用 | 2 | | 13 | `shop.jd_customer_service.daily` | 京东客服消息采集 | 店铺洞察 | 每天 `03:00` | 0 | 暂停 | 1 | | 14 | `shop.jd_negative_reviews.daily` | 京东差评采集 | 店铺洞察 | 每天 `03:30` | 0 | 暂停 | 1 | | 15 | `shop.jd_after_sales_issues.daily` | 京东品退问题采集 | 店铺洞察 | 每天 `04:00` | 0 | 暂停 | 1 | | 16 | `shop.douyin_customer_service.daily` | 抖音客服消息采集 | 店铺洞察 | 每天 `03:10` | 0 | 暂停 | 1 | | 17 | `shop.douyin_after_sales_quality.daily` | 抖音品退采集(商品品质原因售后单与协商记录) | 店铺洞察 | 每天 `03:20` | 0 | 暂停 | 1 | | 18 | `shop.dy_negative_reviews.daily` | 抖音差评采集(差评评价与商品信息) | 店铺洞察 | 每天 `03:20` | 0 | 暂停 | 1 | | 19 | `shop.douyin_price_appeal` | 抖音待改价申诉 | 店铺洞察 | 每天整点(`00:00`–`23:00`) | 0 | 启用 | 1 | | 20 | `product.persona.daily` | 商品人群画像日采集 | 商品经营 | 每周二 `12:00` | 0 | 启用 | 1 | | 21 | `product.daily` | 商品经营日报采集 | 商品经营 | 每天 `08:40` | -1 | 启用 | 1 | | 22 | `product.alert.daily` | 商品销量异常告警 | 商品经营 | 每天 `23:00` | 0 | 启用 | 1 | | 23 | `product.ecommerce_costs.daily` | 三平台电商费用采集 | 商品经营 | 每天 `10:00` | -1 | 启用 | 6 | | 24 | `product.style_analysis.interval` | 款式周期分析 | 商品经营 | 每 3 天 `11:00`;锚点 `2026-07-25` | -1 | 启用 | 1 | | 25 | `product.main_image.weekly` | 京东与天猫主图周采集 | 商品经营 | 每周日 `08:30` | 0 | 启用 | 2 | | 26 | `product.sales_sheet.daily` | 商品月度销量表 | 商品经营 | 每月 1 日 `10:00` | -1 | 启用 | 1 | | 27 | `product.erp_all_shop_daily` | 聚水潭全店铺款式日报 | 商品经营 | 每天 `09:00` | -1 | 启用 | 1 | | 28 | `product.video_upload` | 上传所选天猫店铺短视频 | 商品经营 | 每 3 天 `14:00`;锚点 `2026-09-04` | 0 | 启用 | 1 | | 29 | `product.jd_video_upload` | 扫描新增视频并发布到京东 | 商品经营 | 每 3 天 `14:00`;锚点 `2026-09-04` | 0 | 启用 | 1 | | 30 | `product.tmall_baibu_apply` | 天猫百亿补贴批量报名 | 商品经营 | 每天整点(`00:00`–`23:00`) | 0 | 启用 | 6 | | 31 | `supply.purchase_confirmation.daily` | 采购确认日处理 | 供应链 | 每天 `08:00` | 0 | 启用 | 1 | | 32 | `supply.replenishment.weekly` | 补货建议周处理 | 供应链 | 每周一 `08:00` | 0 | 暂停 | 1 | | 33 | `supply.replenishment_alert.daily` | 补货预警日处理 | 供应链 | 每天 `07:00` | 0 | 启用 | 1 | | 34 | `supply.replenishment_arrival_sync.daily` | 补货建议预计到货同步 | 供应链 | 每天 `09:00` | 0 | 启用 | 1 | | 35 | `product.market_rank` | 市场排行周采集 | 商品经营 | 每月 1 日 `10:00` | 0 | 启用 | 1 | ## 5. 并行执行清单 ### 5.1 判定口径 - 调度器在一次 `tick` 中收集所有到期计划,然后连续调用启动器;同一时间到期的不同工作流不会因为前一个工作流尚未结束而在调度器层面自动等待。实现见 `src/gyxx_flow/scheduler_service.py` 的 `PythonScheduler.tick()`。 - 当前 `depends_on` 只描述同一工作流内部步骤之间的依赖,没有跨工作流依赖边。因此下面的“可并行”首先表示配置层面没有工作流间依赖。 - 实际执行仍受 `WorkflowEngine` 的步骤资源锁、浏览器 Profile/账号锁、外部平台限制和数据库写入边界影响;“同一时间节点”不等于“可以无条件安全并发”。 ### 5.2 按时间节点的工作流并行候选 以下组合按“当前启用计划”列出;暂停计划不计入实际并行组合。 | 时间范围 | 配置层面的并行候选 | 实际约束 | | --- | --- | --- | | 每天 `00:00`–`23:00` 整点 | `shop.douyin_price_appeal` + `product.tmall_baibu_apply` | 两者分别属于店铺洞察和商品经营,工作流资源不同;仍需遵守抖音、天猫账号及浏览器资源隔离。 | | 每天 `01:00`、`05:00` | 上述整点组合 + `content.metrics.daily` | 内容指标日报使用独立工作流/步骤资源;需额外确认其内容平台账号不会与其他正在运行的内容采集冲突。 | | 每天 `07:00` | 整点组合 + `supply.replenishment_alert.daily` | 供应链模块资源与店铺、商品模块不同,可作为跨模块并行候选。 | | 时间节点 `08:00` | 整点组合 + `content.summary.monthly` + `supply.purchase_confirmation.daily` | 当前 `supply.replenishment.weekly` 已暂停;供应链内若同时启用多个计划,会受到共享 `module:supply_chain` 资源约束。 | | 时间节点 `08:30` | `content.creator_report.monthly` + `product.main_image.weekly` | 两个工作流属于不同模块;前者按月 1 日执行,后者按周日执行;主图工作流内部的京东、天猫步骤也配置为独立资源。 | | 每天 `08:40` | 仅 `product.daily` | 当前没有同一时间的其他计划。 | | 每天 `09:00` | 整点组合 + `content.notes_master.daily` + `shop.jd_self_operated.daily` + `product.erp_all_shop_daily` + `supply.replenishment_arrival_sync.daily` | `product.erp_all_shop_daily` 与 `supply.replenishment_arrival_sync.daily` 都使用 `erp-jushuitan` 账号成员,不能仅凭模块锁判断为安全并行,应优先串行或确认账号/Profile 锁。 | | 时间节点 `10:00` | 整点组合 + `content.summary.weekly` + `product.ecommerce_costs.daily` + `product.sales_sheet.daily` + `product.market_rank` | 这些计划的周期分别是每天、每周二和每月 1 日;`product.sales_sheet.daily` 与 `product.market_rank` 共享商品模块级资源;费用采集和整点计划还可能使用相同的平台账号,需按账号/浏览器实际绑定协调。 | | 时间节点 `11:00` | 整点组合 + `product.style_analysis.interval` | 款式分析按每 3 天执行,使用工作流级商品资源,可作为资源层面的并行候选。 | | 时间节点 `12:00` | 整点组合 + `content.comments.weekly` + `shop.metrics.weekly` + `product.persona.daily` | 这些计划分布在周日、周一和周二;三个工作流均有独立步骤资源,但店铺经营、人群画像和整点平台任务可能访问相同平台账号,必须做账号级校验。 | | 每 3 天 `14:00` | 整点组合 + `product.video_upload` + `product.jd_video_upload` | 京东视频与天猫视频使用不同工作流资源;`product.video_upload` 与天猫百亿补贴都可能使用天猫账号,天猫两者不应直接并发。 | | 每天 `23:00` | 整点组合 + `product.alert.daily` | 商品告警使用商品模块级资源;当前与两个整点工作流不存在配置资源交集。 | 在 `02:00`、`03:00`、`04:00`、`06:00`、`13:00`、`15:00`–`22:00`,当前启用的同时间组合主要是两个整点工作流;`03:10`、`03:30`、`08:40`、`12:30`没有其他同一时刻的启用工作流可并行。 ### 5.3 工作流内部可并行的步骤 工作流内部是否并行由 `depends_on` 和步骤资源决定,当前明确可并行的分支如下: | 工作流 | 可并行步骤 | 依赖关系 | | --- | --- | --- | | `content.comments.weekly` | `bilibili`、`xiaohongshu`、`douyin` | 三个步骤均无前置依赖,且使用独立内容平台资源。 | | `product.ecommerce_costs.daily` | `tmall_download`、`jd_download`、`douyin_download` | 三个平台下载步骤均无前置依赖;每个平台的 `import` 只依赖本平台的 `download`。 | | `product.main_image.weekly` | `jd`、`tmall` | 两个平台步骤均无前置依赖,并配置了独立步骤资源。 | | `shop.metrics.weekly` | `jd`、`dy`、`tm` | 三个平台步骤均无前置依赖,并配置了独立步骤资源。 | | `shop.competitor.weekly` | `jd`、`dy` | 两个平台步骤均无前置依赖,并配置了独立步骤资源。 | 当前不应按“多步骤”直接判为并行的工作流包括:`content.metrics.daily`(链式依赖)、`shop.jd_self_operated.daily`(品牌步骤完成后才执行商品步骤)、`product.tmall_baibu_apply`(六个报名步骤按链式依赖执行),以及 4 条供应链工作流(每条只有一个步骤且共享供应链模块资源)。 ### 5.4 模块资源层面的结论 | 模块 | 可以并行的范围 | 需要串行/重点校验的范围 | | --- | --- | --- | | 内容营销 | `content.metrics.daily`、`content.comments.weekly` 已使用工作流或步骤级资源;跨模块任务通常可并行候选。 | 其余内容工作流使用共享 `module:content_marketing`,相互重叠时会受资源锁限制。 | | 商品经营 | `product.persona.daily`、`product.daily`、`product.style_analysis.interval`、`product.ecommerce_costs.daily`、两个视频工作流和天猫百补工作流使用工作流级资源;主图工作流使用独立平台步骤资源。 | `product.alert.daily`、`product.sales_sheet.daily`、`product.erp_all_shop_daily`、`product.market_rank`共享 `module:product_commerce`;天猫/京东/抖音账号仍需单独校验。 | | 店铺洞察 | 各工作流步骤使用独立的店铺资源,配置上允许更细粒度并行。 | 账号、CDP 端口和平台页面仍可能形成实际瓶颈,尤其是同一店铺账号的采集任务。 | | 供应链 | 可与其他模块的工作流并行。 | 4 条供应链工作流共享 `module:supply_chain`,相互重叠时应串行。 | ## 6. 需要特别留意的配置关系 1. `product.video_upload` 与 `product.jd_video_upload` 使用同一锚点 `2026-09-04`、同一间隔 `3` 天和同一时间 `14:00`,到期时会落在同一个时间节点。 2. `content.metrics.daily` 每天有两个启动时间:`01:00` 和 `05:00`;它不是单一时间点的日报计划。 3. `shop.douyin_price_appeal` 与 `product.tmall_baibu_apply` 都配置为 24 个整点,因此共同覆盖全天 24 个整点节点。 4. `product.sales_sheet.daily` 的工作流 ID 虽带有 `daily`,当前计划类型实际是 `monthly`;`product.market_rank` 的显示名称含“周采集”,当前计划类型实际也是 `monthly`。判断执行周期应以 `config/schedules.json` 的 `kind`、`days`、`day_of_month` 为准。 5. 所有计划均由项目内 Python 常驻调度器统一管理;本文只描述配置分布,不等同于某一时刻调度器进程是否运行,也不代表对应业务执行已经成功。