Skip to content

云平台计划任务

云平台长期任务较少,目前重点是门店积分日结。受控脚本在 yunapi/scripts/cron,服务器 /root/scripts/ 中的脚本应从仓库同步,不要只在宝塔面板维护不可追踪版本。

任务清单

脚本业务含义接手关注点
yun_store_score_daily_settlement_bt.sh门店积分每日结算。结算日期、重复执行保护、积分来源、门店范围、日志和补跑方式。

脚本默认调用 https://yunapi.jingangai.cn/api/v1/internal/yun-store-score/trigger,通过 X-Task-Token 校验内部任务 token。支持的关键环境变量包括:

变量说明
TASK_NAME默认 store_score_daily_settlement;也兼容来源同步类任务名。
TASK_TOKEN必填,必须与 yunapi 环境变量 INTERNAL_TASK_TOKEN 一致。
SETTLE_DATE指定补跑日期,格式 YYYY-MM-DD
BEGIN_DATEEND_DATE来源同步任务的补跑范围。
FORCE是否强制补跑,默认 false
LOG_FILE默认 /www/wwwlogs/yun-store-score-scheduled-worker.log
LOCK_FILE默认 /tmp/yun_store_score_daily_settlement.lock,防止并发跑同一任务。

宝塔配置要求

宝塔任务命令必须使用 exec env,让脚本真实退出码传给计划任务:

bash
exec env \
  TASK_NAME=store_score_daily_settlement \
  TASK_DESC=云平台门店积分每日结算 \
  TASK_TOKEN='<与 yunapi INTERNAL_TASK_TOKEN 一致的密钥>' \
  /root/scripts/yun_store_score_daily_settlement_bt.sh

不要直接写成 TASK_NAME=... /root/scripts/yun_store_score_daily_settlement_bt.sh。宝塔外层包装器可能在内部脚本失败后仍打印 Successful,导致任务误判成功。

成功判定

任务只有同时满足以下条件才算成功:

条件说明
curl 成功网络请求没有超时或连接失败。
HTTP 状态码为 200接口正常返回。
响应 success=true内部任务执行结果成功。
脚本退出码为 0宝塔能拿到真实退出码。
批次状态为 SUCCESSstore_score_settlement_batch 对应结算日期成功。

宝塔日志只是执行证据,最终业务状态以云平台“积分机制 -> 结算运维”和结算批次表为准。

排查步骤

  1. 查看宝塔或调度平台是否启用脚本,命令是否以 exec env 开头。
  2. 确认后端地址、内部任务 token、时间范围和 FORCE 是否正确。
  3. /www/wwwlogs/yun-store-score-scheduled-worker.log,确认 HTTP 状态、响应和退出码。
  4. yunapi 日志,确认处理日期、处理数量和异常。
  5. 查云平台“积分机制 -> 结算运维”,确认批次状态、影响门店数和流水数。
  6. 如需补跑,按日期从早到晚逐日执行;流水通过 source_key 幂等,不允许绕过唯一来源键批量插入。

日常顺序

建议时间任务说明
01:30小羽佳开发标准单同步将来源订单写入对应积分日。
01:50家姐联盟旧客户续约同步写入续约积分。
02:30门店积分每日结算汇总三嫂业绩、满佣、换人、一次性单、员工上架等日结项目。

调整任务时间时,来源同步必须早于每日结算,并预留足够执行间隔。

文档维护

门店积分、排行、日结口径变更时,应同步更新:

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