STRYMO

Jobs / Cron

Ця сторінка керує внутрішніми NewsMon job-ами в job_definitions. Системний cron у cPanel/сервері має запускати тільки php /home2/qzusnhmy/newsmon/bin/scheduler.php раз на хвилину; усе інше керується тут. Час запусків показано за Києвом; UTC доступний у підказці при наведенні.

Як це працює: scheduler.php сам не виконує важкі задачі послідовно. Він щохвилини дивиться due jobs і запускає їх у фоні через run-job.php ... &. Якщо процес затягнувся, locks не дають другому такому самому процесу зіпсувати дані: ingest, prepare, cluster_pipeline, dispatch_prepare, dispatch_cluster.

Рекомендований dispatcher-профіль

Це повторює твою стару cPanel-схему, але переносить керування всередину NewsMon: RSS кожні 10 хв, Prepare Dispatcher кожні 10 хв зі зміщенням 1 хв, Cluster Dispatcher кожні 5 хв зі зміщенням 3/8/13... Дочірні jobs переводяться в manual/off, щоб вони не бігли паралельно напряму.

Після цього в cPanel має бути один cron: * * * * * /usr/bin/php /home2/qzusnhmy/newsmon/bin/scheduler.php >/dev/null 2>&1

Довідка: що означають основні jobs
runRssIngestion
Забирає RSS-стрічки у feed_items/source_contents
Рекомендовано slot 0;10;20;30;40;50 — аналог старого */10. Токени не витрачає.
runSourceContentAutofetch
Автоматично завантажує повні HTML-тексти у source_contents тільки для enabled + trusted extraction profiles
Почати з manual/off. Токени не витрачає і не впливає на Prepare/кластеризацію.
runPrepareDispatcher
Диспетчер AI prepare: сам вирішує, запускати enrich чи heal
Рекомендовано slot 1;11;21;31;41;51 — аналог старого cron.
runTelegramAiPrepareRecent
Telegram-aware AI Prepare: з повного TG-тексту робить title_ua, entities, tags, keys, cluster_ready
Вмикати обережно. Витрачає OpenAI tokens тільки для Telegram-джерел з AI on.
runClusterDispatcher
Диспетчер кластерної лінії: primary → summaries → core/lite/deep за станом черги
Рекомендовано slot 3;8;13;18;23;28;33;38;43;48;53;58 — аналог старого cron.
runMaintenanceCleanup
Прибирання завислих locks/job_runs
Можна тримати увімкненим: interval 300 sec. Токени не витрачає.
runTelegramIngestion
Старий direct Telegram ingest з Bluehost
Для нової схеми Hetzner gateway має бути off/manual, бо TG тягне VPS.
runAiEnrichRecent
Дочірній AI enrich для RSS/звичайних заголовків
Не планувати напряму, якщо увімкнений runPrepareDispatcher.
runAiHealRecent
Дочірній AI heal для хвостів/пропусків prepare
Не планувати напряму, якщо увімкнений runPrepareDispatcher.
runStoriesTodayClustering
Primary clustering — розкладає cluster_ready заголовки у сюжети
Краще off/manual, якщо працює runClusterDispatcher.
runClusterSummariesUpdate
Оновлює summaries для touched/pending кластерів
Краще off/manual, якщо працює runClusterDispatcher.
runClustersRevisionCore
Основний revision/split/move для проблемних кластерів
Краще off/manual, якщо працює runClusterDispatcher.
runClustersRevisionLite
Легкий revision/singleton rescue/mini-cleanup
Краще off/manual, якщо працює runClusterDispatcher.
runDeepClusterRevision
Глибокий revision великих umbrella-кластерів
Зазвичай manual/off; auto лише після окремого рішення.

AI / Pipeline windows

Явні вікна обробки: наскільки далеко jobs можуть лізти назад по pending-рядках. Наведи курсор на знак ?, щоб побачити пояснення.

AI-gated

Автоматичний TG prepare обробляє тільки активні Telegram-джерела, де в Джерелах увімкнено AI. RSS/enrich/heal і primary тепер мають окремі явні lookback-вікна; revision/deep і далі працюють по поточному day_key.

Source Content Autofetch

Автоматично завантажує повні тексти з сайтів у source_contents тільки для джерел, де є enabled extraction profile і ввімкнено довіряти профілю. Не використовує LLM і не передає ці тексти в Prepare/кластеризацію.

No LLM

Для тесту запускай вручну: php bin/run-job.php runSourceContentAutofetch --dry-run --limit=10, потім без --dry-run. Патч не вмикає автоматичний запуск самостійно.

Це змінює внутрішні job_definitions, не cPanel cron.
JobEnabledScheduleGroupPriorityLast statusLast runMetricsДії
runMaintenanceCleanup
ID 10 · Прибирання завислих locks/job_runs
Рекомендовано: interval 300 sec
oninterval · 300 secmaintenance50idle
run: success
2026-07-12 12:27:17
done: 2026-07-12 12:27:17
rows 0/0
api 0 · tok 0/0
Редагувати
runRssIngestion
ID 1 · Забирає RSS-стрічки у feed_items/source_contents
Рекомендовано: slot 0;10;20;30;40;50
onslot · 0;5;10;15;20;25;30;35;40;45;50;55ingest100idle
run: success
2026-06-26 19:50:01
done: 2026-06-26 19:50:07
rows 230/18
api 23 · tok 0/0
Редагувати
runTelegramIngestion
ID 14 · Старий direct Telegram ingest з Bluehost
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualingest120partial
run: stale_failed
2026-05-24 08:47:32
done: 2026-06-09 19:20:01
rows 0/0
api 0 · tok 0/0
Редагувати
Marked stale by runMaintenanceCleanup after heartbeat timeout
runPrepareDispatcher
ID 19 · Диспетчер AI prepare: сам вирішує, запускати enrich чи heal
Рекомендовано: slot 1;11;21;31;41;51
onslot · 1;4;7;10;13;16;19;22;25;28;31;34;37;40;43;46;49;52;55;58prepare_dispatch180idle
run: success
2026-06-26 19:49:01
done: 2026-06-26 19:49:01
rows 0/0
api 0 · tok 0/0
Редагувати
runAiPrepareRecent
ID 2 · Старий/legacy prepare job
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualprepare200idle
run: failed
2026-04-17 15:06:20
done: 2026-04-17 15:08:20
rows 0/0
api 0 · tok 0/0
Редагувати
OpenAI empty response. cURL error: Operation timed out after 120001 milliseconds with 0 bytes received
runAiEnrichRecent
ID 8 · Дочірній AI enrich для RSS/звичайних заголовків
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualprepare200idle
run: success
2026-06-26 19:46:01
done: 2026-06-26 19:46:32
rows 6/6
api 1 · tok 1604/3153
Редагувати
runTelegramAiPrepareRecent
ID 15 · Telegram-aware AI Prepare: з повного TG-тексту робить title_ua, entities, tags, keys, cluster_ready
Рекомендовано: manual/off поки тестуємо; потім interval 900 sec
oninterval · 600 sectelegram_prepare204idle
run: success
2026-07-12 15:31:10
done: 2026-07-12 15:32:47
rows 5/5
api 5 · tok 13590/8133
Редагувати
runAiHealRecent
ID 9 · Дочірній AI heal для хвостів/пропусків prepare
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualprepare210idle
run: failed
2026-04-27 18:31:02
done: 2026-04-27 18:35:06
rows 0/0
api 0 · tok 0/0
Редагувати
OpenAI empty response. cURL error: Operation timed out after 64004 milliseconds with 0 bytes received
runClusterDispatcher
ID 20 · Диспетчер кластерної лінії: primary → summaries → core/lite/deep за станом черги
Рекомендовано: slot 3;8;13;18;23;28;33;38;43;48;53;58
onslot · 2;5;8;11;14;17;20;23;26;29;32;35;38;41;44;47;50;53;56;59cluster_dispatch280idle
run: success
2026-06-26 19:50:01
done: 2026-06-26 19:50:19
rows 0/0
api 0 · tok 0/0
Редагувати
runStoriesTodayClustering
ID 3 · Primary clustering — розкладає cluster_ready заголовки у сюжети
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualcluster_pipeline300idle
run: success
2026-06-26 19:38:02
done: 2026-06-26 19:39:09
rows 26/26
api 3 · tok 15962/6934
Редагувати
runClusterSummariesUpdate
ID 47 · Оновлює summaries для touched/pending кластерів
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualcluster_pipeline310idle
run: success
2026-06-26 19:47:02
done: 2026-06-26 19:47:58
rows 8/10
api 4 · tok 7661/5459
Редагувати
runClustersRevisionCore
ID 4 · Основний revision/split/move для проблемних кластерів
Рекомендовано: manual/off, якщо використовується dispatcher
onmanualcluster_pipeline400idle
run: success
2026-06-26 19:44:01
done: 2026-06-26 19:44:20
rows 2/8
api 2 · tok 6388/1717
Редагувати
runClustersRevisionLite
ID 5 · Легкий revision/singleton rescue/mini-cleanup
Рекомендовано: manual/off, якщо використовується dispatcher
onmanualcluster_pipeline500idle
run: success
2026-06-26 19:50:01
done: 2026-06-26 19:50:19
rows 96/0
api 1 · tok 4265/1574
Редагувати
runDeepClusterRevision
ID 6 · Глибокий revision великих umbrella-кластерів
Рекомендовано: manual/off, якщо використовується dispatcher
onmanualcluster_pipeline520idle
run: success
2026-06-26 19:11:01
done: 2026-06-26 19:11:41
rows 1/25
api 1 · tok 5240/2941
Редагувати
runSheetSync
ID 7 · Синхронізація/службовий sync, якщо використовується
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualsync700idle
run: —

done: —
rows 0/0
api 0 · tok 0/0
Редагувати
runSourceContentAutofetch
ID 28 · Автоматично завантажує повні HTML-тексти у source_contents тільки для enabled + trusted extraction profiles
Рекомендовано: manual/off для тесту; потім interval 1800–3600 sec лише після перевірки профілів
offmanualcontent700idle
run: success
2026-06-24 21:19:02
done: 2026-06-24 21:19:06
rows 25/25
api 0 · tok 0/0
Редагувати
runPublicationLinksExtract
ID 29 · Внутрішній NewsMon job
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualpublication_links710idle
run: success
2026-06-24 21:21:01
done: 2026-06-24 21:21:01
rows 22/22
api 0 · tok 0/0
Редагувати
runPublicationHtmlLinksBackfill
ID 30 · Внутрішній NewsMon job
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualpublication_links720idle
run: success
2026-06-24 21:07:02
done: 2026-06-24 21:07:05
rows 25/120
api 0 · tok 0/0
Редагувати
runPublicationLinkMatching
ID 31 · Внутрішній NewsMon job
Рекомендовано: manual/off, якщо використовується dispatcher
offmanualpublication_links730idle
run: success
2026-06-24 21:09:01
done: 2026-06-24 21:09:13
rows 500/1453
api 0 · tok 0/0
Редагувати