ops: стенд — schedd 0.5.0 (run-deadline), timeoutMs -1, ozon bind-mount state на хост
- schedd.Dockerfile: daemon 0.4.2 → 0.5.0 (фикс envelope-дыра/statusUrl/poll-retry/run-deadline) - tasks.json: timeoutMs -1 на обе пайплайн-таски (никогда не авто-терминировать) - docker-compose: ozon /app/data + /app/state.json bind-mount на хост (как ym) - data-ozon/state.json: baked-снапшот state из образа
This commit is contained in:
6
host-stacks/local/sched-pipelines/data-ozon/state.json
Normal file
6
host-stacks/local/sched-pipelines/data-ozon/state.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"lastSpecSha256": "8756930c9921a569473dee082586af4e390f45497d4a1dd3ba4b7b622e232822",
|
||||
"recipeVersion": "1.3.0",
|
||||
"lastSpecSnapshot": "2026-08-20",
|
||||
"lastRunAt": "2026-08-20T10:19:48.760Z"
|
||||
}
|
||||
@@ -90,7 +90,9 @@ services:
|
||||
GH_TOKEN: ${GITHUB_TOKEN:-}
|
||||
NPM_TOKEN: ${NPM_TOKEN:-}
|
||||
volumes:
|
||||
- ozon-data:/app/data
|
||||
- ./data-ozon:/app/data
|
||||
# state.json на хост — иначе живёт в слое образа (run.js хардкодит ROOT) и теряется при пересоздании
|
||||
- ./data-ozon/state.json:/app/state.json
|
||||
# снапшот спеки из репо (fetch антиботом не ходим — dry-run от ручного снапшота)
|
||||
- ./data-ozon-openapi:/app/openapi
|
||||
ports:
|
||||
@@ -160,7 +162,6 @@ services:
|
||||
|
||||
volumes:
|
||||
sched-data:
|
||||
ozon-data:
|
||||
|
||||
networks:
|
||||
sched-local:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# schedd — опубликованный daemon из приватного реестра (verdaccio), как на проде.
|
||||
# @sched/daemon@0.4.2 (latest) + deps (core 0.44.0, admin-api 0.2.0, mcp 0.4.1).
|
||||
# @sched/daemon@0.5.0 (latest) + deps (core 0.45.0) — фикс 2026-08-20: envelope-дыра,
|
||||
# относительный statusUrl, poll-ретраи 2×500мс, run-deadline контракт (task-level timeoutMs).
|
||||
# node >= 24 (engines у daemon; node:sqlite).
|
||||
FROM node:24-alpine
|
||||
RUN apk add --no-cache git
|
||||
@@ -7,7 +8,7 @@ WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
ARG VERDACCIO_TOKEN
|
||||
RUN npm config set //verdaccio.kzntsv.site/:_authToken=${VERDACCIO_TOKEN} \
|
||||
&& npm install -g @sched/daemon@0.4.2 --registry=https://verdaccio.kzntsv.site --no-audit --no-fund
|
||||
&& npm install -g @sched/daemon@0.5.0 --registry=https://verdaccio.kzntsv.site --no-audit --no-fund
|
||||
EXPOSE 8080
|
||||
VOLUME ["/data"]
|
||||
ENTRYPOINT ["schedd"]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
{
|
||||
"name": "ozon-seller-pipeline",
|
||||
"runner": "http",
|
||||
"timeoutMs": -1,
|
||||
"schedules": [{ "cron": "0 2 * * *" }],
|
||||
"config": {
|
||||
"url": "http://ozon-seller-builder:8080/run?async=1",
|
||||
@@ -17,6 +18,7 @@
|
||||
{
|
||||
"name": "yandex-market-pipeline",
|
||||
"runner": "http",
|
||||
"timeoutMs": -1,
|
||||
"schedules": [{ "cron": "30 2 * * *" }],
|
||||
"config": {
|
||||
"handler": "pipeline",
|
||||
|
||||
Reference in New Issue
Block a user