จัดการโควต้า

Google Calendar API มีโควต้าเพื่อให้ผู้ใช้ทุกคนใช้งานได้อย่างเท่าเทียม ข้อจำกัดที่สำคัญ 3 ข้อที่ควรพิจารณาเมื่อใช้ปฏิทิน API มีดังนี้

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

ประเภทโควต้าการใช้งาน Calendar API

ระบบจะบังคับใช้โควต้า 2 ประเภท ได้แก่

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

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

หากใช้โควต้าเกิน ระบบจะจำกัดอัตราและคุณจะได้รับรหัสสถานะ 403 usageLimits หรือรหัสสถานะ 429 usageLimits ในการค้นหา สิ่งที่คุณทำได้ในกรณีนี้

  1. ตรวจสอบว่าคุณทําตามแนวทางปฏิบัติแนะนําทั้งหมด ดังนี้ ใช้การลดจำนวนครั้งแบบทวีคูณ สุ่มรูปแบบการเข้าชม ใช้ Push Notification
  2. หากโปรเจ็กต์ของคุณเติบโตขึ้นและมีผู้ใช้มากขึ้น คุณสามารถขอเพิ่มโควต้าต่อโปรเจ็กต์ได้
  3. หากใช้โควต้าต่อผู้ใช้ถึงขีดจํากัดแล้ว คุณจะทำสิ่งต่อไปนี้ได้
    • หากคุณใช้บัญชีบริการ ให้จัดสรรภาระงานให้กับผู้ใช้หรือแบ่งภาระงานระหว่างบัญชีบริการหลายบัญชี
    • แม้ว่าคุณจะขอเพิ่มโควต้าต่อผู้ใช้ได้ แต่โดยทั่วไปเราไม่แนะนำให้เพิ่มโควต้าให้สูงกว่าค่าเริ่มต้น เนื่องจากแอปพลิเคชันของคุณอาจเริ่มถึงขีดจำกัดประเภทอื่นๆ เช่น ขีดจำกัดการใช้งานปฏิทินทั่วไป หรือขีดจำกัดการทํางาน

ขอเพิ่มโควต้า

หากต้องการดูหรือเปลี่ยนขีดจำกัดการใช้งานสำหรับโปรเจ็กต์ หรือต้องการขอเพิ่มโควต้า ให้ทำดังนี้

  1. หากยังไม่มีบัญชีการเรียกเก็บเงินสำหรับโปรเจ็กต์ ให้สร้างบัญชี
  2. ไปที่หน้า API ที่เปิดใช้ในไลบรารี API ในคอนโซล API แล้วเลือก API จากรายการ
  3. หากต้องการดูและเปลี่ยนการตั้งค่าที่เกี่ยวข้องกับโควต้า ให้เลือกโควต้า หากต้องการดูสถิติการใช้งาน ให้เลือกการใช้งาน

ใช้ Exponential Backoff

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

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

สุ่มรูปแบบการเข้าชม

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

หากต้องการหลีกเลี่ยงปัญหานี้ ให้กระจายการเข้าชมตลอดทั้งวันหากเป็นไปได้ หากลูกค้าต้องซิงค์ทุกวัน ให้ลูกค้ากำหนดเวลาแบบสุ่ม (แตกต่างกันไปในแต่ละลูกค้า) หากต้องดําเนินการอย่างสม่ำเสมอ ให้เปลี่ยนช่วงเวลาเป็น +/- 25% วิธีนี้จะช่วยกระจายการเข้าชมอย่างสม่ำเสมอมากขึ้นและมอบประสบการณ์การใช้งานที่ดีขึ้นมาก

ใช้ข้อความ Push

Use Case ที่พบบ่อยคือต้องการดำเนินการทุกครั้งที่มีการเปลี่ยนแปลงในปฏิทินของผู้ใช้ รูปแบบที่ไม่ถูกต้องคือการตรวจสอบปฏิทินที่น่าสนใจทุกรายการซ้ำๆ ซึ่งจะทำให้คุณใช้โควต้าทั้งหมดอย่างรวดเร็ว เช่น หากแอปพลิเคชันมีผู้ใช้ 5,000 คนและทำการสำรวจปฏิทินของผู้ใช้แต่ละราย 1 ครั้งต่อนาที การดำเนินการนี้จะต้องมีโควต้าต่อนาทีอย่างน้อย 5,000 รายการก่อนที่จะทำงานได้

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

การบัญชีที่เหมาะสมด้วยบัญชีบริการ

หากแอปพลิเคชันของคุณดำเนินการตามคำขอโดยใช้การมอบสิทธิ์ทั่วทั้งโดเมน ระบบจะเรียกเก็บเงินจากบัญชีบริการตามโควต้า "ต่อนาทีต่อโปรเจ็กต์ต่อผู้ใช้" โดยค่าเริ่มต้น ไม่ใช่ผู้ใช้ที่คุณแอบอ้างเป็น ซึ่งหมายความว่าบัญชีบริการมีแนวโน้มที่จะใช้โควต้าหมดและถูกจำกัดอัตรา แม้ว่าจะทำงานในปฏิทินของผู้ใช้หลายคนก็ตาม คุณหลีกเลี่ยงปัญหานี้ได้โดยใช้พารามิเตอร์ quotaUser URL (หรือส่วนหัว x-goog-quota-user HTTP) เพื่อระบุผู้ใช้ที่จะเรียกเก็บเงิน ข้อมูลนี้ใช้สำหรับการคำนวณโควต้าเท่านั้น ดูข้อมูลเพิ่มเติมได้ในการจำกัดคำขอต่อผู้ใช้ในเอกสารประกอบของ Cloud

ทดสอบการจัดการขีดจํากัดโควต้า

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

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

ราคา

การใช้ Google Calendar API ทั้งหมดจะใช้งานได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม การขอโควต้าเกินขีดจํากัดจะไม่ทำให้เกิดค่าใช้จ่ายเพิ่มเติมและระบบจะไม่เรียกเก็บเงินจากบัญชีของคุณ