Skip to content

金刚系统计划任务

金刚系统的长期任务主要放在 storeapi/scripts/cron,标准入口是 storeapi/scripts/run_scheduled_worker.py。宝塔计划任务或外部调度通常调用 cron 脚本,再由脚本进入统一 worker;不要依赖云函数请求结束后的后台线程处理补偿、结算、通知和超时逻辑。

任务清单

脚本或任务业务含义可用补跑参数接手关注点
standard_staff_dispatch_pending.sh标准单待派发处理。LIMITDRY_RUN候选过滤、锁、失败重试。
standard_staff_dispatch_timeout.sh标准单派发超时处理。TIMEOUT_MINUTESLIMITDRY_RUN超时阈值、顺延、档期释放、游标。
standard_order_settlement_process.sh标准单结算处理。LIMITDRY_RUN支付和分账状态、幂等、人工处理。
standard_order_notification_process.sh标准单通知 outbox 消费。--limit微信和短信独立重试,不能重复延长确认时间。
standard_order_zhonglu_insurance_retry.sh标准服务单按单保障补查和补偿。每批 1 至 100 条先查保险服务方真实结果,再重试提交;不得重复出单。
staff_withdrawal_payout_process.sh员工提现分账至易宝账户。LIMITDRY_RUN财务通过后立即分账至员工易宝账户;渠道成功后不直接将钱包改为已到账。
staff_withdrawal_wallet_settlement员工易宝自动提现后的钱包状态结算。LIMITDRY_RUN建议每日 00:05 执行;只处理前一日已分账到易宝账户的单据,并把钱包记录由“提现中”改为“提现成功”。
staff_onboarding_post_register.sh员工入驻后处理。LIMIT门店绑定、资料和失败补偿;脚本带进程锁。
staff_station_level_refresh.sh员工站点等级刷新。--limit--dry-run统计口径和派发影响。
development_bonus_release.sh发展奖励释放。LIMITDRY_RUN解冻月份、重复发放保护。
development_bonus_refund_reconcile.sh发展奖励退款核对。LIMITDRY_RUN退款冲减、已提现待抵扣。
daily_business_stats_notify.sh日常业务统计通知。DRY_RUNSKIP_NOTIFY统计口径和通知群。
jingang_store_score_daily_settlement_bt.sh门店积分日结。SETTLE_DATEFORCE分布式锁、日结批次和指定日期补跑。
monthly_brand_fee月度品牌费扣款。--billing-month--dry-run--skip-notify真实扣费、欠费停派和补扣恢复。
jiejie_lead_dispatch_pending.sh家姐联盟线索待派发。LIMIT按积分排名轮发,检查区域池、轮发位置和夜间禁止时段。
jiejie_lead_timeout_transfer.sh家姐联盟线索超时顺延。TIMEOUT_MINUTESLIMIT超时、未读、夜间禁止时段和下一门店顺延。
jiejie_lead_nightly_charge.sh家姐联盟线索夜间扣费。CHARGE_DATELIMIT真实扣费、锁、余额和失败补偿。
cleanup_stale_insurance_pending.py清理长时间待处理保险状态。dry-run/execute 模式先核对第三方状态,避免误清正常保单。

统一 worker 支持的金刚主线任务包括:standard_staff_dispatch_pendingstandard_staff_dispatch_timeoutstandard_order_settlement_processstandard_order_notification_processdevelopment_bonus_releasedevelopment_bonus_refund_reconcilestaff_station_level_refreshstaff_withdrawal_payout_processstaff_withdrawal_wallet_settlementstore_score_daily_settlementmonthly_brand_feedaily_business_stats_notify。重跑前先确认任务幂等、锁状态和 --dry-run 是否可用。

内部接口统一为 POST /api/v1/internal/tasks/trigger,通过 X-Task-Token 与生产 INTERNAL_TASK_TOKEN 校验。知识库不保存 token 值;脚本和后端 token 不一致时,任务会在进入业务处理前失败。

即将删除链路

与小羽佳订单协同相关的历史任务不作为本次交接维护重点。后续如果业务删除该链路,应同时清理旧任务配置、旧文档入口和历史告警口径。

家姐联盟线索派发不是小羽佳订单协同。线索任务仍需维护,派发口径是按上周积分排名确定基础顺序,再结合每日轮发游标、进行中线索、余额和接收开关决定实际顺序。新线索首次派发、超时流转和查看时余额不足流转共用同一个区域每日游标:当天第一次自动派发从第 1 名开始,每成功派发一次后继续下一名;次日游标重置。单条线索已经尝试过的门店继续排除。

夜间禁止自动派发及流转开启后,配置时段内新线索只入待派发池,不生成门店通知、不推进轮发游标;已派出但未查看的线索暂停超时计时,查看时余额不足触发的自动换店也顺延。配置结束时间到达后,jiejie_lead_dispatch_pending.sh 必须保持启用,按 LIMIT 分批恢复夜间积压线索;超过单批上限时按调度频率逐批清空。

已知调度时间

任务仓库记录的时间使用口径
月度品牌费历史任务说明建议每月 1 日 03:10生产是否仍由宝塔自动触发必须核实,避免与云平台人工执行重复扣费。
简历分享过期sys_job 迁移配置为每 10 分钟以生产 sys_job 当前状态为准。
卡单清理代码注释建议每日 02:00未在统一 worker 注册,需检查生产 APScheduler 配置。

其余任务的生产频率不能从仓库可靠确定。高频扫描任务通常需要分钟级执行,但知识库不把推测写成生产事实。

宝塔生产清单

生产服务器 /www/wwwroot/定时任务 中的每个任务都应登记以下内容:

字段说明
宝塔任务名称和 ID用于快速定位,不只记录脚本文件名。
cron 表达式记录实际触发时间和时区。
执行用户与完整命令确认 Python、工作目录、环境变量和权限。
调用入口本地 worker、内部接口或 APScheduler。
日志路径包含任务标准输出、错误输出和业务日志。
超时与重试是否有 flock、curl timeout、失败重跑或告警。
最近核实记录最近成功时间、核实人和生产环境。

仓库已知部分脚本会写 /www/wwwlogs/jingang-scheduled-worker.log 或独立 onboarding 日志,但不能据此推断所有任务共用同一日志文件。

任务排查步骤

  1. 确认宝塔或调度平台是否仍启用该脚本。
  2. 查看脚本调用的内部接口、token 和环境变量是否正确。
  3. 查后端日志,确认任务开始、结束、处理数量和异常。
  4. 查业务表状态,确认是否重复处理或漏处理。
  5. 资金、分账、提现类任务必须先备份相关数据,再补跑。

补跑时优先指定账期、日期或批次,并从小 LIMIT 开始。任务返回成功只表示调用完成,还要检查主表、流水表、任务表和通知结果。

用于金刚项目内部协作、运营培训和客户说明。