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

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

ระดับเริ่มต้น 6 นาที

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

สิ่งที่ 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 นาที และการรันที่ค้างของการซิงค์ตามกำหนดเวลาจะถูกแทนที่หลังจากหนึ่งชั่วโมง ทำความเข้าใจการซิงค์ข้อมูล ระบุว่าการซิงค์ใดรันตามกำหนดเวลา

หยุดชั่วคราวหลังล้มเหลวซ้ำ ถ้าการรันห้าครั้งล่าสุดที่จบแล้วนับตั้งแต่การซิงค์ถูกแก้ไขครั้งล่าสุดล้มเหลวทั้งหมด 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 ของการรันมาให้เรา
  • การซิงค์ล้มเหลวนานกว่าเจ็ดวัน หลังจากเจ็ดวัน บัญชีการส่งจะลืมการเขียนที่เสร็จสมบูรณ์ แบตช์ที่ถูกเล่นซ้ำหลังจากนั้นอาจเขียนเรคคอร์ดซ้ำได้ จึงควรตรวจสอบปลายทางว่ามีรายชื่อผู้ติดต่อซ้ำหรือไม่
  • การซิงค์หนึ่งเงียบไปขณะที่อีกการซิงค์ทำงานปกติ การตรวจสอบทุกชั่วโมงเฝ้าดูพื้นที่ทำงาน ไม่ใช่การซิงค์แต่ละรายการ การซิงค์ที่ทำงานปกติหนึ่งรายการจะบังการซิงค์ที่เงียบไปในพื้นที่ทำงานเดียวกัน จึงควรอ่าน Run history ของการซิงค์แต่ละรายการ
  • คุณต้องการขีดจำกัดที่ต่างออกไป การหยุดชั่วคราวหลังล้มเหลวห้าครั้งและการตรวจสอบ 24 ชั่วโมงถูกตั้งค่าไว้สำหรับการติดตั้ง Tajo ทั้งระบบ ไม่ใช่ต่อการซิงค์

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

หน้านี้ในรูปแบบ Markdown: recover-a-stuck-or-failed-sync.md

กำลังโหลด Markdown…
เปิดใน Claude เปิดใน ChatGPT