Подайте заявку на ранний доступ

Укажите имя и адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

Начальный 6 мин

Восстановление зависшей или неудачной синхронизации

Что Tajo делает сам, когда рабочий процесс останавливается или запуск синхронизации завершается ошибкой, что показывает страница синхронизации и когда действовать вам: повторить запуск, переподключить, исправить сопоставление полей или опубликовать заново.

Запуск синхронизации может остановиться на полпути: рабочий процесс перезапускается, другая система недоступна или запись отклонена. После остановки рабочего процесса или кратковременного сбоя Tajo сам возобновляет синхронизацию. Записи, отправленные за последние семь дней, он повторно не отправляет. Здесь описано, что он делает, что вы видите на странице синхронизации и в каких немногих случаях нужно действовать вам.

Быстрая проверка Откройте синхронизацию в Syncs and mappings в разделе Connections и посмотрите последний запуск в Run history. Неудачный запуск сообщает, что произошло и что делать дальше.

Что Tajo делает сам

Курсор. Запуск читает источник пакетами, начиная с сохранённого курсора синхронизации. Курсор сдвигается в конце пакета, только если дошли все записи этого пакета. Если запуск завершается ошибкой, сохраняется последняя позиция, достигнутая без ошибок. Следующий запуск начинает с неё, поэтому прерванный пакет читается снова, а не пропускается.

Реестр доставки. Перед отправкой каждая запись получает ключ доставки. Ключ — это хеш синхронизации, источника, курсора страницы, позиции записи на странице и самой записи, поэтому в нём нет персональных данных. Перед вызовом целевой системы ключ занимается. Когда запись проходит успешно, ключ помечается как завершённый и хранится семь дней. Ключ не зависит от того, какой запуск спрашивает, поэтому повторная попытка или более поздний плановый запуск выводят тот же ключ для той же записи. В течение этих семи дней используется сохранённый результат, и целевая система повторно не вызывается. Поэтому повторно прочитанный пакет не попадает в неё дважды.

Один запуск за раз. У каждой синхронизации одна аренда, которую текущий запуск держит всё время своей жизни. У аренды свой токен и срок жизни 15 минут; пока запуск работает, она продлевается каждые 5 минут. Запуск, потерявший аренду, останавливается перед следующей записью или контрольной точкой, чтобы не записать дважды. Когда рабочий процесс останавливается, его аренда больше не продлевается и истекает в течение 15 минут.

Автоматические повторы. Запуск из очереди, завершившийся ошибкой, получает до пяти попыток. Tajo ждёт 60 секунд перед второй попыткой, затем 120, 240 и 480 секунд. Повторный или тестовый запуск, который вы начинаете сами, выполняется один раз. Запуск, столкнувшийся с уже идущим запуском, не повторяется, как и запуск, чья опубликованная версия или подключения больше не действительны.

Зависшие запуски. Если Tajo запускает синхронизацию по расписанию, запуск закрывается, а новый ставится в очередь, когда он начался больше часа назад и уже не держит аренду. Закрытый запуск показывает «The run stopped reporting progress and was closed.» (запуск перестал сообщать о ходе работы и был закрыт). Так что аренда остановленного запуска длится не больше 15 минут, а зависший запуск синхронизации по расписанию заменяется через час. В статье Как устроена синхронизация данных перечислено, какие синхронизации запускаются по расписанию.

Пауза после повторяющихся сбоев. Если все пять последних завершённых запусков с момента последнего изменения синхронизации завершились ошибкой, 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.

Что делать

  1. Прочитайте последний неудачный запуск. Его строка о том, что делать, и есть следующий шаг. В таблице ниже перечислены сбои, которые вы встретите чаще всего.
  2. Если там написано «Nothing» (ничего), подождите. Следующий плановый запуск восстановится сам.
  3. Если там сказано запустить синхронизацию снова, нажмите Retry у неудачного запуска в View DLQ. Повторный запуск начинается с сохранённого курсора, поэтому уже записанные пакеты повторно не записываются. Успешный повторный запуск убирает неудачный запуск из списка.
  4. Если синхронизация была приостановлена, устраните причину, названную в баннере, затем опубликуйте синхронизацию заново через Publish sync или Request publish approval.
  5. Если тот же сбой повторяется, пришлите нам 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, включая запуск, чей рабочий процесс остановился. Если Tajo запускает синхронизацию по расписанию, такой запуск закрывается и заменяется, когда он начался больше часа назад. Для любой другой синхронизации пришлите нам id запуска.
  • Синхронизация завершалась ошибкой больше семи дней. Через семь дней реестр забывает о завершённой записи. Пакет, повторно прочитанный после этого, может записать данные снова, поэтому проверьте целевую систему на дублирующиеся контакты.
  • Одна синхронизация молчит, а другая работает. Ежечасная проверка следит за рабочим пространством, а не за каждой синхронизацией. Одна исправная синхронизация скрывает молчащую в том же рабочем пространстве, поэтому смотрите Run history каждой синхронизации.
  • Вам нужны другие пороги. Пауза после пяти сбоев и 24-часовая проверка задаются для всего развёртывания Tajo, а не для отдельной синхронизации.

Связанные статьи

Эта страница в Markdown: recover-a-stuck-or-failed-sync.md

Загрузка Markdown…
Открыть в Claude Открыть в ChatGPT