Изпълнение на синхронизация може да спре по средата, защото worker се рестартира, другата система не работи или запис бъде отказан. След спрял worker или кратко прекъсване Tajo само поема синхронизацията отново. То не изпраща повторно записи, които е записало през последните седем дни. Тази страница обяснява какво прави Tajo, какво виждате на страницата на синхронизацията и малкото случаи, в които трябва да действате.
Бърза проверка Отворете синхронизацията от Syncs and mappings под Connections и прочетете най-новото изпълнение в Run history. Неуспешното изпълнение казва какво се е случило и какво да направите след това.
Какво прави Tajo само
Курсорът. Изпълнението чете своя източник на пакети от запазения курсор на синхронизацията. Курсорът се премества в края на пакета само когато всеки запис в този пакет е пристигнал. Ако изпълнението се провали, последната позиция, до която е стигнало без грешка, се запазва. Следващото изпълнение започва оттам, така че прекъснатият пакет се прочита отново, а не се пропуска.
Регистърът на доставките. Преди да бъде записан, всеки запис получава ключ за доставка. Ключът е хеш от синхронизацията, източника, курсора на страницата, позицията на записа в страницата и самия запис, така че не съдържа лични данни. Преди да се извика дестинацията, ключът се резервира. Когато записването успее, ключът се отбелязва като завършен и се пази седем дни. Ключът не зависи от това кое изпълнение пита, така че повторен опит или по-късно планирано изпълнение получава същия ключ за същия запис. В рамките на тези седем дни се използва запазеният резултат и дестинацията не се извиква отново. Затова повторно изпълнен пакет не пристига два пъти.
По едно изпълнение наведнъж. Всяка синхронизация има един lease, който текущото изпълнение държи през цялото си времетраене. Lease има собствен токен и живот от 15 минути и се подновява на всеки 5 минути, докато изпълнението работи. Изпълнение, което загуби своя lease, спира преди следващото си записване или контролна точка, за да не запише два пъти. Когато worker спре, неговият lease вече не се подновява и изтича в рамките на 15 минути.
Автоматични повторни опити. Изпълнение от опашката, което се провали, получава до пет опита. Tajo изчаква 60 секунди преди втория опит, след това 120, 240 и 480 секунди. Повторен опит или тестово изпълнение, което стартирате сами, се изпълнява веднъж. Изпълнение, което се е сблъскало с вече текущо изпълнение, не се повтаря. Не се повтаря и изпълнение, чиято публикувана версия или връзки вече не са валидни.
Блокирали изпълнения. При синхронизация, която Tajo изпълнява по график, изпълнението се затваря и ново се поставя в опашката, след като е започнало преди повече от час и вече не държи своя lease. Затвореното изпълнение показва “The run stopped reporting progress and was closed.” Така lease на спряло изпълнение трае най-много 15 минути, а блокиралото изпълнение на планирана синхронизация се заменя след час. Разбиране на синхронизацията на Shopify данни с Brevo изброява кои синхронизации се изпълняват по график.
Пауза след повтарящи се неуспехи. Ако последните пет завършени изпълнения, откакто синхронизацията е променена за последно, са се провалили, Tajo поставя синхронизацията на пауза. Страницата ѝ показва “Paused automatically by the failure circuit breaker” с последната грешка. Едно успешно изпълнение нулира броенето. Нищо не рестартира само синхронизация на пауза: тя остава на пауза, докато не отстраните причината и не я публикувате отново.
Ежечасната проверка. Всеки час, в 13 минути след кръглия час, Tajo известява собствения си екип за всяко работно пространство с активна синхронизация и без успешно изпълнение през последните 24 часа. Това включва и работно пространство, в което изобщо не е записано изпълнение. Сигналът се подава веднъж и отново едва след като някое изпълнение е успяло. Работно пространство, чиято най-стара активна синхронизация е включена или променена преди по-малко от 24 часа, все още не се проверява. Този сигнал стига до Tajo, не до Вас, и не променя синхронизацията Ви.
Какво виждате
Отворете синхронизацията от Syncs and mappings. Run history изброява всяко изпълнение със записаните от прочетените записи, броя неуспешни, продължителността и кога е започнало. Статусът му е Queued, Running, Succeeded, Partial (някои записи са неуспешни) или Failed.
- Текущо изпълнение, което не е докладвало напредък от 2 минути, показва “Waiting for a fresh progress update”.
- Неуспешното изпълнение показва едно изречение за това какво се е случило, едно за това какво да направите след това, името на неуспеха и id на изпълнението.
- View DLQ на страницата Syncs изброява неуспешните и частичните изпълнения на всички синхронизации, всяко с бутон Retry.
Какво да направите
- Прочетете най-новото неуспешно изпълнение. Редът му „какво да направите“ е следващата стъпка. Таблицата по-долу изброява неуспехите, които най-вероятно ще срещнете.
- Ако пише “Nothing”, изчакайте. Следващото планирано изпълнение се възстановява само.
- Ако пише да изпълните синхронизацията отново, натиснете Retry при неуспешното изпълнение във View DLQ. Повторният опит започва от запазения курсор, така че вече записаните пакети не се записват отново. Успешен повторен опит маха неуспешното изпълнение от списъка.
- Ако синхронизацията е поставена на пауза, отстранете причината, която банерът посочва, и след това публикувайте синхронизацията отново с Publish sync или Request publish approval.
- Ако същият неуспех се повтаря, изпратете ни id на изпълнението, показан под неуспешното изпълнение.
Всяко име на неуспех отговаря на едно изречение за това какво се е случило, едно за това какво да направите след това, и на това кой го поправя: Вие или Tajo.
| Име на неуспеха | Какво се случи | Какво да направите | Кой поправя |
|---|---|---|---|
lease_conflict | Друго изпълнение на тази синхронизация вече беше в ход. | Нищо. Текущото изпълнение ще завърши; следващото планирано изпълнение започва нормално. | Tajo |
lease_lost | Изпълнението загуби своя слот по средата и спря, за да не запише два пъти. | Изпълнете синхронизацията отново. | Tajo |
lease_unavailable | Синхронизацията не успя да резервира своя слот за изпълнение. | Изпълнете синхронизацията отново. Ако се провали по същия начин, изпратете ни id на изпълнението. | Tajo |
stale_job_swept | Изпълнението спря да докладва напредък и беше затворено. | Изпълнете синхронизацията отново. | Tajo |
provider_rate_limited | Другата система ни помоли да забавим темпото. | Нищо. Изчакайте следващото планирано изпълнение. | Tajo |
provider_unavailable | Другата система беше недостъпна или не отговори навреме. | Нищо. Изчакайте следващото планирано изпълнение. Ако се проваля по същия начин цял ден, изпратете ни id на изпълнението. | Tajo |
connection_missing | Инструмент, който синхронизацията използва, не е свързан в това работно пространство; изпълнението го посочва. | Свържете го и след това изпълнете синхронизацията отново. | Вие |
connection_unauthorized | Другата система отказа нашия достъп. | Свържете отново връзката, за да получи ново упълномощаване, и след това изпълнете синхронизацията отново. | Вие |
destination_rejected | Дестинацията отказа всеки запис в това изпълнение. | Проверете съпоставянето на полетата спрямо задължителните полета и форматите на дестинацията и след това изпълнете синхронизацията отново. | Вие |
node_failed | Стъпка от синхронизацията се провали при четене, преобразуване или записване на записи. | Отворете изпълнението, за да видите коя стъпка се провали и защо, поправете това и след това изпълнете синхронизацията отново. | Вие |
attestation_rule_not_active | Тази синхронизация е на пауза. | Възобновете синхронизацията, за да я изпълните. | Вие |
attestation_publication_not_attested | Тази версия на синхронизацията не е публикувана. | Публикувайте синхронизацията. Промените в синхронизация не се изпълняват, докато не бъдат публикувани. | Вие |
unclassified_exception | Синхронизацията се провали по причина, която още не сме класифицирали. | Изпълнете синхронизацията отново. Ако се провали по същия начин, изпратете ни id на изпълнението. | Tajo |
Какво може да се обърка
- Retry отговаря “This sync rule is already running.” Повторен опит или тестово изпълнение, което стартирате, се отказва, докато някое изпълнение на синхронизацията се показва като Queued или Running, включително изпълнение, чийто worker е спрял. При синхронизация, която Tajo изпълнява по график, това изпълнение се затваря и заменя, след като е започнало преди повече от час. За всяка друга синхронизация ни изпратете id на изпълнението.
- Синхронизация се проваля повече от седем дни. След седем дни регистърът на доставките забравя завършено записване. Пакет, изпълнен повторно след това, може да запише записите отново, затова проверете дестинацията за дублирани контакти.
- Една синхронизация мълчи, докато друга работи. Ежечасната проверка следи работното пространство, а не всяка синхронизация. Една здрава синхронизация скрива мълчаща синхронизация в същото работно пространство, затова прочетете Run history на всяка синхронизация.
- Искате други лимити. Паузата след пет неуспеха и 24-часовата проверка са зададени за цялата инсталация на Tajo, а не за всяка синхронизация.