From e2fd864bdcd572054064dd008034d2bd4f4f7379 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 10 Jun 2026 04:05:05 +0800 Subject: [PATCH] =?UTF-8?q?chore(deploy):=20=E7=BE=8E=E5=9B=A2=E5=88=B8=20?= =?UTF-8?q?ETL=20=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=20systemd=20unit(?= =?UTF-8?q?=E9=94=80=E9=87=8F=E6=A6=9C=E6=95=B0=E6=8D=AE=E6=BA=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 把 scripts/pull_meituan_coupons.py 跑成定时任务,持续给 meituan_coupon 表灌数据(销量榜 /api/v1/meituan/top-sales 的数据源)。两个 unit: - meituan-etl.service: oneshot,跑 `python -m scripts.pull_meituan_coupons --once --prune-hours 24`;EnvironmentFile 复用 .env 拿 MT_CPS 凭证 / DATABASE_URL - meituan-etl.timer: OnActiveSec=1min(启用即跑,首次 1 分钟内)+ OnUnitActiveSec=1h(之后每隔 1 小时)。不用 OnActiveSec=0——本机 systemd 对 0 + OnUnitActiveSec 报 Result=resources 拒绝加载 已部署 ecs1(scp 到 /etc/systemd/system/ + enable --now),首轮 success、 top-sales 接口返回带销量排序数据。安装/运维说明见 docs 仓库的 运维/销量榜feed排序_变更与部署记录.md。 Co-Authored-By: Claude Opus 4.8 --- deploy/meituan-etl.service | 17 +++++++++++++++++ deploy/meituan-etl.timer | 11 +++++++++++ 2 files changed, 28 insertions(+) create mode 100644 deploy/meituan-etl.service create mode 100644 deploy/meituan-etl.timer diff --git a/deploy/meituan-etl.service b/deploy/meituan-etl.service new file mode 100644 index 0000000..d8c98b1 --- /dev/null +++ b/deploy/meituan-etl.service @@ -0,0 +1,17 @@ +[Unit] +Description=Shaguabijia Meituan CPS coupon ETL (灌 meituan_coupon 供销量/佣金排序) +After=network-online.target postgresql.service +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/opt/shaguabijia-app-server +# 复用 app-server 的 .env(MT_CPS 凭证 / DATABASE_URL),与 shaguabijia-app-server.service 同源 +EnvironmentFile=/opt/shaguabijia-app-server/.env +Environment=PYTHONUNBUFFERED=1 +ExecStart=/opt/shaguabijia-app-server/.venv/bin/python -m scripts.pull_meituan_coupons --once --prune-hours 24 +# 北京一轮正常 ~2-3min,给 15min 上限防卡死 +TimeoutStartSec=900 +StandardOutput=journal +StandardError=journal diff --git a/deploy/meituan-etl.timer b/deploy/meituan-etl.timer new file mode 100644 index 0000000..b5d5d53 --- /dev/null +++ b/deploy/meituan-etl.timer @@ -0,0 +1,11 @@ +[Unit] +Description=Run Shaguabijia Meituan CPS coupon ETL (启用即跑一次, 之后每 1h) + +[Timer] +# 启用/启动 timer 后立即触发一次(含开机自启、restart timer 时) +OnActiveSec=0 +# 之后每隔 1 小时(相对上次 service 启动时刻)再触发;脚本自带文件锁,单轮 ~8min << 1h 不会重叠 +OnUnitActiveSec=1h + +[Install] +WantedBy=timers.target