การเพิ่มประสิทธิภาพขั้นตอนการทำงาน

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

ปัญหาประสิทธิภาพการทำงานทั่วไป

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

ทริกเกอร์ที่มีปริมาณสูง

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

วิธีแก้ไข: เพิ่มประสิทธิภาพขั้นตอนการทำงานของคุณโดยใช้ข้อมูลน้อยลง หรือใช้ขั้นตอนการรอเพื่อแบ่งส่วนขั้นตอนการทำงานตามที่ระบุไว้ด้านล่าง

ขั้นตอนการทำงานจำนวนมากใช้ทริกเกอร์เดียวกัน

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

  • ขั้นตอนการทำงานอาจขัดแย้งกันเอง
  • ขั้นตอนการทำงานกำลังพยายามดึงข้อมูลและเรียก API ในเวลาเดียวกัน และร้านค้าของคุณสามารถจัดการคำขอในแต่ละครั้งได้เป็นจำนวนจำกัดตามขีดจำกัดของ Shopify API

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

การใช้รายการหรือข้อมูลที่ไม่ถูกต้อง

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

ปัญหาที่พบบ่อยอีกประการหนึ่งคือการเลือกข้อมูลผิดโดยไม่ได้ตั้งใจ ตัวอย่างเช่น หากต้องการตรวจสอบข้อมูลสินค้าในคำสั่งซื้อ คุณอาจเลือก order / publication / products / tags แทนที่จะเป็น order / line items / product / tags ผลลัพธ์แรกมักจะไม่ถูกต้องเนื่องจากจะดึงข้อมูลสินค้าทั้งหมดเพื่อเผยแพร่ แต่สิ่งที่คุณต้องการคือการตรวจสอบสินค้าในคำสั่งซื้อ การเลือกรายการขนาดใหญ่เช่นนี้อาจทำให้เกิดปัญหาด้านประสิทธิภาพ และการเลือกรายการที่ไม่ถูกต้องอาจส่งผลให้ระบบอัตโนมัติของคุณทำงานผิดพลาด

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

เมตาฟิลด์

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

วิธีแก้ไข: ใช้ออบเจ็กต์ metafield (docs) แทน metafields

การใช้การดำเนินการรับข้อมูลมากเกินไป

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

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

ไม่มีตัวกรองคำค้นหาในการดำเนินการ Get data

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

วิธีแก้ไข: รวมตัวกรองคำค้นหาไว้ในการดำเนินการรับข้อมูลเสมอ

ตัวกรองคำค้นหาที่ไม่ถูกต้องในการดำเนินการรับข้อมูล

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

วิธีแก้ไข: ค้นหารายการตัวกรองคำค้นหาที่ใช้ได้จากเอกสารที่ได้จากการดำเนินการใน Flow ทดสอบตัวกรองคำค้นหาเสมอเพื่อให้แน่ใจว่าจะส่งกลับข้อมูลตามที่ต้องการ คุณสามารถใช้การดำเนินการบันทึกเอาท์พุตใน Flow (เพื่อดูข้อมูลที่ส่งกลับมา) หรือคุณสามารถเรียก Shopify Admin API โดยตรง (ผ่านไคลเอนต์ API เช่น Postman หรือผ่าน แอปพลิเคชัน GraphiQL)

วิธีแก้ปัญหาเพิ่มเติมสำหรับปัญหาประสิทธิภาพทั่วไป

ใช้ขั้นตอนการรอเพื่อชะลอการดึงข้อมูล

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

  1. ทริกเกอร์: ปริมาณตัวเลือกสินค้าคงคลังเปลี่ยนแปลงแล้ว
  2. เงื่อนไข: ตรวจสอบว่าสินค้าอยู่ในคอลเลกชันหรือไม่
  3. หากเป็นจริง การดำเนินการ: รอ 2 วินาที
  4. การดำเนินการ: ส่งอีเมลถึงลูกค้า (พร้อมข้อมูลจำนวนมาก)

ในตัวอย่างนี้ ข้อมูลที่จำเป็นสำหรับขั้นตอนที่ 4 จะถูกส่งคำค้นหาหลังจากขั้นตอนการรอเสร็จสิ้นแล้วเท่านั้น หากเงื่อนไขเป็นเท็จโดยปกติ หมายความว่าขั้นตอนการทำงานจะทำงานเร็วขึ้นและมีประสิทธิภาพมากขึ้น

สิ่งที่ไม่ควรเพิ่มประสิทธิภาพ

การใช้ข้อมูลเดียวกันในการดำเนินการหลายอย่าง

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

ไม่พบคำตอบที่คุณต้องการงั้นหรือ เราพร้อมช่วยเหลือคุณ