Розклад не спрацював: що перевірити, коли вранці нічого не сталося

16 хв

Elbuz записує в «Журнал операцій» кожен прогін за розкладом і кожну відмову з причиною, тому причину ранкової тиші видно за кілька хвилин.

Коли це знадобиться:

  • За ніч у журналі жодного рядка — шість перевірок ведуть від найчастішої причини до рідкісних.
  • Руками джерело вантажиться, а за розкладом ні — розклад пропускає вимкнене джерело чи контрагента і пише в журнал попередження з причиною.
  • У журналі рядок «конфлікт обробки даних» — прогін збігся з іншим і пропущений до наступного збігу правила.
  • Прогін обірвався, а розклад мовчить і далі — завислий замок програма знімає сама за 10–60 хвилин.

З чого почати: відкрийте «Журнал операцій» за ту ніч.

Що допоможе знайти причину

Де це і хто має доступ

Меню
Кабінет → Журнал операцій — тут видно прогони й відмови
Розклад сутності
картка джерела, шаблону чи парсера → «Налаштувати» або «Налаштування розкладу»
Журнал одного джерела
картка джерела прайсу → вкладка «Журнал»
Право доступу
право «Розклад завдань» у правах груп і право на картку сутності

Усі входи у вікно розкладу — у статті про налаштування розкладу.

Шість перевірок, коли нічого не сталося

Порядок тут не випадковий: перевірки йдуть від найчастішої причини до найрідшої, і кожна наступна має сенс лише тоді, коли попередня пройдена.

Шлях від «настала хвилина» до запису в журналі: пʼять розвилок. На трьох верхніх прогін зникає без сліду в журналі, на конфлікті лишає рядок про відмову, а на вимкненій сутності слід залежить від того, що це: джерело прайсу лишає попередження, шаблон вивантаження — ні
нітакзнятастоїтьнітактакнінітакЩохвилини програма звіряєчас із правилами розкладівАкаунт активнийі платний?Галочка«Активність» стоїть?Час за правиломнастав?Такий самий прогінуже виконується?Сутність і її контрагентувімкнені?Прогін запускаєтьсяДовга частина роботиїде в «Чергу завдань»Запис у «Журналі операцій»Не запуститься нічого,і сліду в журналі не будеРозклад не відбираєтьсяЧекає наступного збігуПрогін пропущено:«конфлікт обробки даних»Сутність пропущено.Джерело прайсу лишаєпопередженняв журналі, шаблон — ні
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Розклад мовчить: що перевірити

Перевірка перша — журнал. Порожньо за всю ніч — прогін або не починався, або почався й одразу вийшов, не лишивши сліду; обидва випадки розбираємо далі. Є рядок про відмову — прогін починався, і причина написана прямо в ньому; це наступний розділ.

Порожній журнал не доводить, що програма не працювала. Без рядка минають вимкнений модуль парсингу для розкладу самого парсера, порожнє завдання черги й пропуск завдання черги через зайнятий шаблон.

Перевірка друга — галочка «Активність». Найчастіша причина з усіх шести. Вимкнений розклад не відбирається програмою взагалі, і зовні це виглядає так само, як поломка: у журналі порожньо, повідомлень немає. Заодно переконайтеся, що правило в конструкторі читається словами: порожнє правило програма теж пропускає мовчки. Чому галочка буває знятою, хоча правило вже стоїть, — у розділі про вікно розкладу.

Перевірка третя — сутність і той, кому вона належить. Розклад пропускає вимкнене джерело, вимкненого контрагента й браузерний парсер, хоча кнопкою вони вантажаться. Як це розпізнати — у наступному розділі.

Перевірка четверта — часовий пояс. Звіряйте час з полем Time zone у вікні розкладу: «10:00» розуміється в поясі користувача admin. Якщо поле порожнє або пояс у ньому явно не той, у якому ви живете, — напишіть у підтримку.

Перевірка пʼята — відмова через чужий прогін. Конфлікт завжди пишеться в журнал, тому шукати його треба саме там — рядком зі словами «конфлікт обробки даних». Якщо такого рядка немає, а прогонів усе одно немає, дивіться розділ про завислий замок: він мовчить так само, як вимкнена галочка.

Перевірка шоста — сама робота. Розклад нічого не лагодить: шаблон, який падає при ручному запуску, впаде й уночі, тільки дивитися на це буде нікому. Але зверніть увагу на зворотний бік: успішний ручний запуск не знімає підозри з перевірки третьої — кнопка на стан джерела й контрагента не дивиться, а розклад дивиться.

Є сьома причина, якої в інтерфейсі не видно взагалі: безкоштовний акаунт програма щохвилинним обходом не відвідує. Розклад при цьому заводиться, галочка ставиться — і не відбувається нічого. Те саме з деактивованим акаунтом, але його ви помітите: замість програми відкриється сторінка-заглушка. Якщо всі шість перевірок пройдені, а в журналі тижнями порожньо — це питання до підтримки, з інтерфейсу воно не вирішується.

Чому джерело вантажиться кнопкою, а за розкладом ні

Ось причина, через яку більшість людей і потрапляє в глухий кут. Розклад запускає ту саму роботу, що й кнопка, але перед запуском відсіює те, чого кнопка не відсіює. Прайс-лист розклад пропустить, якщо:

  • джерело вимкнене. У списку прайс-листів воно видно, з пілюлею стану «Вимкнено»; вмикається пунктом «Увімкнути джерело» в меню рядка;
  • вимкнений контрагент, якому джерело належить. Тоді джерела в списку прайс-листів не видно взагалі — шукайте самого контрагента й галочку активності в його картці;
  • парсер джерела налаштований на стороні браузера, а не на нашому сервері. Такий парсер працює лише тоді, коли ви сидите у програмі, і ніякий розклад його не запустить;
  • джерело вже видалене, а розклад від нього лишився. Такий рядок нікому не заважає, але й не зробить нічого — і прибрати його з інтерфейсу зараз не можна.

У перших трьох випадках кнопка «Імпортувати» спрацює, а розклад — ні. Саме тому перевірка «а руками запускається?» цей випадок не ловить: руками він якраз запускається. Зате в журналі на кожен такий пропуск лишається рядок-попередження: «Джерело … пропущено розкладом» — і в ньому названо причину: вимкнено джерело або контрагента, джерело видалено чи парсер працює у браузері.

Вимкнене джерело прайс-листа та пункт «Увімкнути джерело» в меню
1Пілюля «Вимкнено»
2Пункт «Увімкнути джерело»
  1. Пілюля «Вимкнено» — у цьому стані розклад пропускає джерело мовчки.
  2. «Увімкнути джерело» — єдине місце, де джерело вмикається назад.

Вимкнений шаблон вивантаження розклад пропускає так само — про це докладно в статті про шаблони вивантаження.

Про парсинг сайтів окремо: він за розкладом виходить мовчки, якщо в акаунті вимкнено модуль парсингу сайтів. Ні рядка в журналі, ні повідомлення — просто нічого. Прайс-джерело, яке тягне серверний парсер, той самий вимкнений модуль теж пропускає, але вже з попередженням «серверний парсинг для акаунта не підключено».

Чому прогін пропущено через інший прогін

Кожен обробник перед стартом дивиться, чи не працює зараз інший такий самий. Працює — прогін не відкладається на пізніше, а пропускається до наступного збігу правила. Тобто розклад «щодня о 3:00», який спіткнувся об чужий прогін, наступної спроби зробить не за пʼять хвилин, а завтра о третій.

У журналі це виглядає як один із чотирьох рядків, залежно від того, що саме не поїхало:

  • «Скасовано вивантаження за розкладом, причина - вивантажується інший шаблон (конфлікт обробки даних).»
  • «Скасовано завантаження прайс-листа за розкладом, причина - завантажується інший прайс-лист (конфлікт обробки даних).»
  • «Скасовано завантаження за розкладом, причина - завантажується інший шаблон (конфлікт обробки даних).»
  • «Скасовано завантаження за розкладом, причина - завантажується інший шаблон парсингу (конфлікт обробки даних).»

Є ще пʼятий рядок, і він про інше — не про два різні розклади, а про одне й те саме джерело:

«Завантаження цього джерела вже виконується (запущено о 03:00). Дочекайтеся завершення або зупиніть його кнопкою «Стоп».»

Означає він, що попередній прогін цього прайсу ще живий — або обірвався менш ніж пʼятнадцять хвилин тому. Розклад таке джерело не чіпає й чекає наступного збігу правила. Незавершений прогін видно на вкладці «Журнал» картки джерела.

Лікується це рознесенням розкладів у часі. Одна тонкість: розклад «Обробка прайс-листів», який бере всі джерела одразу, займає той самий замок, що й розклад окремого джерела. Тому «всі прайси о 2:00» і «один важкий прайс о 2:00» — це конфлікт, хоч налаштовані вони в різних місцях.

Якщо завантаження чи вивантаження заважають одне одному, у чаті консультанта, відкритому з вікна прайс-листів або вивантажень, є підказка «Розклад без конфліктів». Число поруч — скільки завдань перетинаються в найближчу добу за середньою тривалістю останніх 30 днів, плюс скасовані за 7 днів запуски. Консультант покаже, що запускається одночасно, скільки воно триває і на який час його зсунути.

Зсув — планом «Змінити час розкладу» з кнопкою підтвердження; для цього потрібен доступ до вікна розкладу, без нього консультант лише порадить час. Системне завдання «тільки для читання» консультант позначає як таке, що не змінюється, і пропонує зсунути друге, звичайне завдання з тієї ж пари.

Що робити, коли замок прогону завис

Замок ставить сам прогін на старті й знімає, коли закінчив. Процес, який обірвався, замок за собою не прибирає — і тоді розклад мовчить не через конфлікт, а через слід від померлого прогону. Проти цього в програмі є сторожі, які щохвилини перевіряють замки й знімають ті, що не подають ознак життя.

Пороги в них різні, бо різні підсистеми пишуть у журнал з різною частотою:

Через скільки знімається завислий замок
Що виконувалосяВід стартуТиша в журналі
будь-яке завдання60 хв30 хв
обробка прайс-листів—30 хв
завантаження за шаблоном15 хв15 хв
парсинг сайту, фонова частина—15 хв
парсинг сайту, фонова частина, яка не подала жодного сигналу10 хв—
черга завдань10 хв10 хв
отримання пошти—5 хв
індексація пошуку20 хв20 хв
Дані таблицею
ПоказникБудь-яке завданняІндексація пошукуЗавантаження за шаблономЧерга завданьОбробка прайс-листівПарсинг сайту, фонова частинаПарсинг сайту без жодного сигналуОтримання пошти
Від старту60201510——10—
Тиша в журналі302015103015—5
Пороги зняття завислого замка. «Будь-яке завдання» — загальний сторож на годину; у решти підсистем свої, набагато коротші. Порожній стовпчик означає, що цей лічильник для підсистеми не діє.

Розклад парсингу має ті самі пороги, що й фонова частина роботи: якщо процес обірвався й перестав пінгувати, замок знімається за 10–15 хвилин, а не за годину.

Живий прогін, який регулярно пише в журнал, сторож не обриває, скільки б той не тривав, — багатогодинне завантаження великого прайсу він не перерве. «Регулярно» тут — частіше ніж раз на півгодини: саме стільки триває дозволена тиша. Найгірший випадок для вас — година очікування, поки загальний сторож прибере слід померлого процесу.

Чекати годину не обовʼязково: замок знімає збереження форми розкладу. Відкрийте вікно розкладу й змініть у ньому будь-що — хоч крапку в «Примітці»: форма збережеться сама, і замок зніметься. Одна умова: відкрити треба розклад тієї самої сутності, чий прогін обірвався, бо знімається замок лише її рядка. Знайти її можна в журналі — за останнім прогоном, який почався й не завершився.

Не сплутайте з іншим сторожем. У прайс-листа є власна перевірка зависань, і працює вона зовсім інакше — не за розкладом, а в момент, коли ви відкриваєте вкладку «Журнал» картки джерела, і дивиться вона на прогони, старші за пʼятнадцять хвилин. Це різні механізми з різними порогами: журнал прайс-листа лікує свій статус «Триває», сторожі з цієї статті знімають замки розкладу.

Сценарії

Нічний прогін усіх прайсів пропускається через важке джерело

Що зробити. Знайдіть у журналі рядок «Скасовано завантаження прайс-листа за розкладом … (конфлікт обробки даних)» і перевірте, чи не стоїть розклад окремого джерела на той самий час, що й «Обробка прайс-листів». Зсуньте розклад джерела на годину раніше чи пізніше.

Що вийде. Обидва прогони йдуть по черзі й більше не займають один замок одночасно.

Постачальника тимчасово вимкнули, а розклад лишився

Що зробити. Нічого: поки джерело чи контрагент вимкнені, розклад їх пропускає і пише попередження «Джерело … пропущено розкладом». Щоб відновити прогони, увімкніть джерело пунктом «Увімкнути джерело» або контрагента в його картці.

Що вийде. На наступному збігу правила джерело знову вантажиться само; правило розкладу переналаштовувати не треба.

Прогін обірвався вночі, а запустити треба вже зараз

Що зробити. Знайдіть у журналі останній прогін, який почався й не завершився. Відкрийте розклад саме цієї сутності й змініть у ньому будь-що, наприклад «Примітку».

Що вийде. Замок знімається разом зі збереженням форми, і наступний збіг правила або ручний запуск проходить без відмови.

Що робити, коли в журналі відмова розкладу

Що видно, чому так і що робити
Що ви бачитеЧому такЩо зробити
У «Журналі операцій» за ніч жодного рядка Прогін не починався. Найчастіше — знята галочка «Активність»: рядок розкладу створюється вимкненим при першому відкритті вікна Пройти шість перевірок по порядку (перевірки)
«Скасовано вивантаження за розкладом, причина - вивантажується інший шаблон (конфлікт обробки даних).» У цей момент уже йшло інше вивантаження. Прогін пропущено до наступного збігу правила Рознести розклади шаблонів у часі (про конфлікти)
«Скасовано завантаження прайс-листа за розкладом, причина - завантажується інший прайс-лист (конфлікт обробки даних).» Ішов інший імпорт прайсів. Розклад «усі прайси» займає той самий замок, що й розклад одного джерела, а сам він додатково чекає ще й на парсинг сайту Рознести розклади джерел; перевірити, чи не стоїть на той самий час «Обробка прайс-листів» (про конфлікти)
«Скасовано завантаження за розкладом, причина - завантажується інший шаблон (конфлікт обробки даних).» Ішло інше завантаження за шаблоном Рознести розклади шаблонів завантаження (про конфлікти)
«Скасовано завантаження за розкладом, причина - завантажується інший шаблон парсингу (конфлікт обробки даних).» Ішов інший парсинг сайту Рознести розклади парсерів (про конфлікти)
«Завантаження цього джерела вже виконується (запущено о 03:00). Дочекайтеся завершення або зупиніть його кнопкою «Стоп».» Прайс уже завантажувався в цей момент: попередній прогін ще живий або обірвався менш ніж пʼятнадцять хвилин тому Подивитися вкладку «Журнал» картки джерела — там видно незавершений прогін (про відмови)
Розклад увімкнено, руками джерело вантажиться, а вночі в журналі лише попередження «Джерело … пропущено розкладом» Розклад пропускає джерело, якщо воно вимкнене, вимкнений його контрагент або парсер джерела налаштований на стороні браузера. Кнопка «Імпортувати» на це не дивиться Увімкнути джерело пунктом «Увімкнути джерело»; якщо джерела немає в списку — увімкнути контрагента (про пропуск джерела)
Галочка «Активність» стоїть, а прогонів усе одно немає Правило може бути порожнім або зіпсованим — таке завдання програма мовчки пропускає, не повідомляючи нічого Відкрити вікно розкладу й перезібрати правило конструктором наново (про вікно розкладу)
Розклад увімкнено тижнями, у журналі порожньо, усі перевірки пройдені Щохвилинний обхід не заходить на безкоштовні й деактивовані акаунти. З програми цю ознаку не видно Звернутися в підтримку (перевірки)

Часті запитання

Галочку поставив, а прогонів немає. Що ще перевірити?

Чи ввімкнені сама сутність і її контрагент (тоді в журналі є попередження «пропущено розкладом»), часовий пояс у полі Time zone і чи немає в журналі рядка «конфлікт обробки даних». Порядок — у шести перевірках.

Два розклади збіглися за часом. Другий виконається пізніше?

Ні. Другий прогін пропускається до наступного збігу правила, і в журнал іде рядок «конфлікт обробки даних». Розклад «щодня о 3:00» наступної спроби зробить завтра о третій. Рознесіть важкі розклади в часі.

Прогін завис, замок висить. Чекати годину?

Не обовʼязково. Відкрийте розклад тієї сутності, що застрягла, і змініть у ньому будь-що — хоч крапку в «Примітці». Форма збережеться сама, і замок зніметься. Інакше його знімуть сторожі, найпізніше за годину.

Чи можна, щоб пропущений прогін відбувся пізніше того ж дня?

Ні: пропущений прогін чекає наступного збігу правила. Якщо дані потрібні частіше, відмітьте в конструкторі розкладу кілька годин, наприклад 3, 9 і 15.

Розклад спрацював, але ціни все одно не ті. Де дивитися?

У вкладці «Журнал» картки джерела: там цифри кожного завантаження й розбір останнього. Детальніше: журнал прайс-листа.

Суміжні теми

Чи була стаття корисною?