---
title: "กู้คืนการซิงค์ที่ค้างหรือล้มเหลว | ศูนย์ช่วยเหลือ | Tajo"
description: "สิ่งที่ Tajo ทำเองเมื่อ worker หยุดทำงานหรือการรันซิงค์ล้มเหลว สิ่งที่หน้าของการซิงค์แสดง และเมื่อใดที่คุณต้องลงมือ: ลองใหม่ เชื่อมต่อใหม่ แก้ไขการจับคู่ หรือเผยแพร่อีกครั้ง"
url: https://tajo.io/th/resources/help/troubleshooting/recover-a-stuck-or-failed-sync/
markdown: https://tajo.io/th/resources/help/troubleshooting/recover-a-stuck-or-failed-sync.md
lang: th-TH
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

[Set Noa](https://tajo.io/th/set-noa/) ระดับเริ่มต้น 6 นาที 6 พ.ย. 2569

# กู้คืนการซิงค์ที่ค้างหรือล้มเหลว

สิ่งที่ Tajo ทำเองเมื่อ worker หยุดทำงานหรือการรันซิงค์ล้มเหลว สิ่งที่หน้าของการซิงค์แสดง และเมื่อใดที่คุณต้องลงมือ: ลองใหม่ เชื่อมต่อใหม่ แก้ไขการจับคู่ หรือเผยแพร่อีกครั้ง

**การรันซิงค์อาจหยุดกลางทางเพราะ worker รีสตาร์ท ระบบอีกฝั่งล่ม หรือมีเรคคอร์ดถูกปฏิเสธ หลังจาก worker หยุดทำงานหรือเหตุขัดข้องชั่วคราวผ่านไป Tajo จะทำการซิงค์ต่อเอง และไม่ส่งเรคคอร์ดที่เขียนไปแล้วในเจ็ดวันล่าสุดซ้ำ หน้านี้อธิบายว่า Tajo ทำอะไร คุณจะเห็นอะไรบนหน้าของการซิงค์ และกรณีไม่กี่กรณีที่คุณต้องลงมือ**

> **ตรวจสอบด่วน** เปิดการซิงค์จาก **Syncs and mappings** ภายใต้ Connections แล้วอ่านการรันล่าสุดใน **Run history** การรันที่ล้มเหลวจะบอกว่าเกิดอะไรขึ้นและต้องทำอะไรต่อ

## สิ่งที่ Tajo ทำเอง

**cursor** การรันจะอ่านแหล่งที่มาเป็นแบตช์ โดยเริ่มจาก cursor ที่บันทึกไว้ของการซิงค์ cursor จะขยับเมื่อจบแบตช์ก็ต่อเมื่อทุกเรคคอร์ดในแบตช์นั้นไปถึงปลายทางแล้วเท่านั้น ถ้าการรันล้มเหลว ตำแหน่งสุดท้ายที่ไปถึงได้อย่างสมบูรณ์จะถูกเก็บไว้ การรันครั้งถัดไปเริ่มจากตรงนั้น แบตช์ที่ถูกขัดจังหวะจึงถูกอ่านซ้ำแทนที่จะถูกข้ามไป

**บัญชีการส่ง** ก่อนเขียนเรคคอร์ด เรคคอร์ดจะได้รับคีย์การส่ง คีย์นี้เป็นค่าแฮชของการซิงค์ แหล่งที่มา cursor ของหน้า ตำแหน่งของเรคคอร์ดบนหน้า และตัวเรคคอร์ดเอง จึงไม่มีข้อมูลส่วนบุคคล ก่อนเรียกปลายทาง ระบบจะจองคีย์นี้ไว้ เมื่อเขียนสำเร็จ คีย์จะถูกทำเครื่องหมายว่าเสร็จสมบูรณ์และเก็บไว้เจ็ดวัน คีย์ไม่ขึ้นกับว่าการรันใดเป็นผู้ถาม การลองใหม่หรือการรันตามกำหนดเวลาครั้งหลังจึงได้คีย์เดียวกันสำหรับเรคคอร์ดเดียวกัน ภายในเจ็ดวันนั้น ระบบจะใช้ผลลัพธ์ที่บันทึกไว้และไม่เรียกปลายทางซ้ำ นี่คือเหตุผลที่แบตช์ที่ถูกเล่นซ้ำจะไม่ถูกเขียนสองครั้ง

**รันได้ครั้งละหนึ่งการรัน** การซิงค์แต่ละรายการมีสิทธิ์เช่า (lease) หนึ่งรายการ ซึ่งการรันที่กำลังดำเนินอยู่ถือไว้ตลอดอายุของมัน สิทธิ์เช่ามีโทเค็นของตัวเองและมีอายุ 15 นาที โดยต่ออายุทุก 5 นาทีขณะที่การรันทำงาน การรันที่เสียสิทธิ์เช่าจะหยุดก่อนการเขียนหรือ checkpoint ครั้งถัดไป เพื่อไม่ให้เขียนซ้ำ เมื่อ worker หยุดทำงาน สิทธิ์เช่าของมันจะไม่ถูกต่ออายุอีกและหมดอายุภายใน 15 นาที

**การลองใหม่อัตโนมัติ** การรันในคิวที่ล้มเหลวจะได้ลองสูงสุดห้าครั้ง Tajo รอ 60 วินาทีก่อนครั้งที่สอง จากนั้น 120, 240 และ 480 วินาที การลองใหม่หรือการรันทดสอบที่คุณเริ่มเองจะรันเพียงครั้งเดียว การรันที่ชนกับการรันอื่นที่กำลังดำเนินอยู่จะไม่ถูกลองใหม่ การรันที่เวอร์ชันที่เผยแพร่หรือการเชื่อมต่อไม่ถูกต้องอีกต่อไปก็เช่นกัน

**การรันที่ค้าง** สำหรับการซิงค์ที่ Tajo รันตามกำหนดเวลา การรันจะถูกปิดและมีการรันใหม่เข้าคิวเมื่อเริ่มไปแล้วเกินหนึ่งชั่วโมงและไม่ได้ถือสิทธิ์เช่าอยู่แล้ว การรันที่ถูกปิดจะแสดง “The run stopped reporting progress and was closed.” (การรันหยุดรายงานความคืบหน้าและถูกปิดแล้ว) ดังนั้นสิทธิ์เช่าของการรันที่หยุดไปจะอยู่ได้นานสูงสุด 15 นาที และการรันที่ค้างของการซิงค์ตามกำหนดเวลาจะถูกแทนที่หลังจากหนึ่งชั่วโมง [ทำความเข้าใจการซิงค์ข้อมูล](https://tajo.io/th/resources/help/getting-started/understanding-data-sync/) ระบุว่าการซิงค์ใดรันตามกำหนดเวลา

**หยุดชั่วคราวหลังล้มเหลวซ้ำ** ถ้าการรันห้าครั้งล่าสุดที่จบแล้วนับตั้งแต่การซิงค์ถูกแก้ไขครั้งล่าสุดล้มเหลวทั้งหมด 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** การลองใหม่จะเริ่มจาก cursor ที่บันทึกไว้ แบตช์ที่เขียนไปแล้วจึงไม่ถูกเขียนซ้ำ การลองใหม่ที่สำเร็จจะนำการรันที่ล้มเหลวออกจากรายการ
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 รวมถึงการรันที่ worker หยุดทำงานไปแล้ว สำหรับการซิงค์ที่ Tajo รันตามกำหนดเวลา การรันนั้นจะถูกปิดและแทนที่เมื่อเริ่มไปแล้วเกินหนึ่งชั่วโมง สำหรับการซิงค์อื่น ส่ง id ของการรันมาให้เรา
- **การซิงค์ล้มเหลวนานกว่าเจ็ดวัน** หลังจากเจ็ดวัน บัญชีการส่งจะลืมการเขียนที่เสร็จสมบูรณ์ แบตช์ที่ถูกเล่นซ้ำหลังจากนั้นอาจเขียนเรคคอร์ดซ้ำได้ จึงควรตรวจสอบปลายทางว่ามี[รายชื่อผู้ติดต่อซ้ำ](https://tajo.io/th/resources/help/troubleshooting/duplicate-contacts/)หรือไม่
- **การซิงค์หนึ่งเงียบไปขณะที่อีกการซิงค์ทำงานปกติ** การตรวจสอบทุกชั่วโมงเฝ้าดูพื้นที่ทำงาน ไม่ใช่การซิงค์แต่ละรายการ การซิงค์ที่ทำงานปกติหนึ่งรายการจะบังการซิงค์ที่เงียบไปในพื้นที่ทำงานเดียวกัน จึงควรอ่าน Run history ของการซิงค์แต่ละรายการ
- **คุณต้องการขีดจำกัดที่ต่างออกไป** การหยุดชั่วคราวหลังล้มเหลวห้าครั้งและการตรวจสอบ 24 ชั่วโมงถูกตั้งค่าไว้สำหรับการติดตั้ง Tajo ทั้งระบบ ไม่ใช่ต่อการซิงค์

## บทความที่เกี่ยวข้อง

- [ทำความเข้าใจการซิงค์ข้อมูล](https://tajo.io/th/resources/help/getting-started/understanding-data-sync/)
- [ข้อมูลไม่ซิงค์](https://tajo.io/th/resources/help/troubleshooting/data-not-syncing/)
- [ยกเลิกการเชื่อมต่อหรือเชื่อมต่อใหม่](https://tajo.io/th/resources/help/integrations/disconnect-or-reconnect/)

## บทความยอดนิยม

[ศูนย์ช่วยเหลือ](https://tajo.io/th/resources/help)

### ดูทั้งหมด

ทรัพยากรทั้งหมด

## หน้านี้ในรูปแบบ Markdown: [recover-a-stuck-or-failed-sync.md](https://tajo.io/th/resources/help/troubleshooting/recover-a-stuck-or-failed-sync.md)

กำลังโหลด Markdown…

[เปิดใน Claude](https://claude.ai/new) [เปิดใน ChatGPT](https://chatgpt.com/)
