Appearance
金刚系统计划任务
金刚系统的长期任务主要放在 storeapi/scripts/cron,标准入口是 storeapi/scripts/run_scheduled_worker.py。宝塔计划任务或外部调度通常调用 cron 脚本,再由脚本进入统一 worker;不要依赖云函数请求结束后的后台线程处理补偿、结算、通知和超时逻辑。
任务清单
| 脚本或任务 | 业务含义 | 可用补跑参数 | 接手关注点 |
|---|---|---|---|
standard_staff_dispatch_pending.sh | 标准单待派发处理。 | LIMIT、DRY_RUN | 候选过滤、锁、失败重试。 |
standard_staff_dispatch_timeout.sh | 标准单派发超时处理。 | TIMEOUT_MINUTES、LIMIT、DRY_RUN | 超时阈值、顺延、档期释放、游标。 |
standard_order_settlement_process.sh | 标准单结算处理。 | LIMIT、DRY_RUN | 支付和分账状态、幂等、人工处理。 |
standard_order_notification_process.sh | 标准单通知 outbox 消费。 | --limit | 微信和短信独立重试,不能重复延长确认时间。 |
standard_order_zhonglu_insurance_retry.sh | 标准服务单按单保障补查和补偿。 | 每批 1 至 100 条 | 先查保险服务方真实结果,再重试提交;不得重复出单。 |
staff_withdrawal_payout_process.sh | 员工提现分账至易宝账户。 | LIMIT、DRY_RUN | 财务通过后立即分账至员工易宝账户;渠道成功后不直接将钱包改为已到账。 |
staff_withdrawal_wallet_settlement | 员工易宝自动提现后的钱包状态结算。 | LIMIT、DRY_RUN | 建议每日 00:05 执行;只处理前一日已分账到易宝账户的单据,并把钱包记录由“提现中”改为“提现成功”。 |
staff_onboarding_post_register.sh | 员工入驻后处理。 | LIMIT | 门店绑定、资料和失败补偿;脚本带进程锁。 |
staff_station_level_refresh.sh | 员工站点等级刷新。 | --limit、--dry-run | 统计口径和派发影响。 |
development_bonus_release.sh | 发展奖励释放。 | LIMIT、DRY_RUN | 解冻月份、重复发放保护。 |
development_bonus_refund_reconcile.sh | 发展奖励退款核对。 | LIMIT、DRY_RUN | 退款冲减、已提现待抵扣。 |
daily_business_stats_notify.sh | 日常业务统计通知。 | DRY_RUN、SKIP_NOTIFY | 统计口径和通知群。 |
jingang_store_score_daily_settlement_bt.sh | 门店积分日结。 | SETTLE_DATE、FORCE | 分布式锁、日结批次和指定日期补跑。 |
monthly_brand_fee | 月度品牌费扣款。 | --billing-month、--dry-run、--skip-notify | 真实扣费、欠费停派和补扣恢复。 |
jiejie_lead_dispatch_pending.sh | 家姐联盟线索待派发。 | LIMIT | 按积分排名轮发,检查区域池、轮发位置和夜间禁止时段。 |
jiejie_lead_timeout_transfer.sh | 家姐联盟线索超时顺延。 | TIMEOUT_MINUTES、LIMIT | 超时、未读、夜间禁止时段和下一门店顺延。 |
jiejie_lead_nightly_charge.sh | 家姐联盟线索夜间扣费。 | CHARGE_DATE、LIMIT | 真实扣费、锁、余额和失败补偿。 |
cleanup_stale_insurance_pending.py | 清理长时间待处理保险状态。 | dry-run/execute 模式 | 先核对第三方状态,避免误清正常保单。 |
统一 worker 支持的金刚主线任务包括:standard_staff_dispatch_pending、standard_staff_dispatch_timeout、standard_order_settlement_process、standard_order_notification_process、development_bonus_release、development_bonus_refund_reconcile、staff_station_level_refresh、staff_withdrawal_payout_process、staff_withdrawal_wallet_settlement、store_score_daily_settlement、monthly_brand_fee 和 daily_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 日志,但不能据此推断所有任务共用同一日志文件。
任务排查步骤
- 确认宝塔或调度平台是否仍启用该脚本。
- 查看脚本调用的内部接口、token 和环境变量是否正确。
- 查后端日志,确认任务开始、结束、处理数量和异常。
- 查业务表状态,确认是否重复处理或漏处理。
- 资金、分账、提现类任务必须先备份相关数据,再补跑。
补跑时优先指定账期、日期或批次,并从小 LIMIT 开始。任务返回成功只表示调用完成,还要检查主表、流水表、任务表和通知结果。