Google Calendar API มีโควต้าเพื่อให้ผู้ใช้ทุกคนใช้งานได้อย่างเท่าเทียม ข้อจำกัดที่สำคัญ 3 ข้อที่ควรพิจารณาเมื่อใช้ปฏิทิน API มีดังนี้
- ระบบจะบังคับใช้โควต้าการใช้งาน API ต่อโปรเจ็กต์และต่อผู้ใช้ ดูข้อมูลเพิ่มเติมได้ในส่วนถัดไป
- ขีดจำกัดการใช้งานปฏิทินทั่วไป: หลีกเลี่ยงขีดจำกัดการใช้งานปฏิทิน
- ขีดจํากัดการดําเนินการ: คุณอาจถูกจํากัดอัตราได้ทุกเมื่อ เช่น คุณพยายามเขียนลงในปฏิทินเดียวติดต่อกันอย่างรวดเร็ว
ประเภทโควต้าการใช้งาน Calendar API
ระบบจะบังคับใช้โควต้า 2 ประเภท ได้แก่
- ต่อนาทีต่อโปรเจ็กต์: คือจํานวนคําขอที่โปรเจ็กต์ Google Cloud ของคุณส่ง
- ต่อนาทีต่อโปรเจ็กต์ต่อผู้ใช้: คือจํานวนคําขอที่ผู้ใช้รายใดรายหนึ่งส่งในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ ขีดจํากัดนี้มีจุดประสงค์เพื่อช่วยให้คุณมั่นใจได้ว่ามีการกระจายการใช้งานอย่างเป็นธรรมในหมู่ผู้ใช้
ระบบจะคำนวณโควต้าต่อนาทีโดยใช้กรอบเวลาแบบเลื่อน ดังนั้นปริมาณการเข้าถึงที่เพิ่มขึ้นอย่างรวดเร็วซึ่งเกินโควต้าต่อนาทีในช่วง 1 นาทีจะส่งผลให้มีการจำกัดอัตราการเข้าชมในช่วงถัดไปเพื่อให้การใช้งานของคุณอยู่ในโควต้าโดยเฉลี่ย
หากใช้โควต้าเกิน ระบบจะจำกัดอัตราและคุณจะได้รับรหัสสถานะ 403 usageLimits
หรือรหัสสถานะ 429 usageLimits
ในการค้นหา สิ่งที่คุณทำได้ในกรณีนี้
- ตรวจสอบว่าคุณทําตามแนวทางปฏิบัติแนะนําทั้งหมด ดังนี้ ใช้การลดจำนวนครั้งแบบทวีคูณ สุ่มรูปแบบการเข้าชม ใช้ Push Notification
- หากโปรเจ็กต์ของคุณเติบโตขึ้นและมีผู้ใช้มากขึ้น คุณสามารถขอเพิ่มโควต้าต่อโปรเจ็กต์ได้
- หากใช้โควต้าต่อผู้ใช้ถึงขีดจํากัดแล้ว คุณจะทำสิ่งต่อไปนี้ได้
- หากคุณใช้บัญชีบริการ ให้จัดสรรภาระงานให้กับผู้ใช้หรือแบ่งภาระงานระหว่างบัญชีบริการหลายบัญชี
- แม้ว่าคุณจะขอเพิ่มโควต้าต่อผู้ใช้ได้ แต่โดยทั่วไปเราไม่แนะนำให้เพิ่มโควต้าให้สูงกว่าค่าเริ่มต้น เนื่องจากแอปพลิเคชันของคุณอาจเริ่มถึงขีดจำกัดประเภทอื่นๆ เช่น ขีดจำกัดการใช้งานปฏิทินทั่วไป หรือขีดจำกัดการทํางาน
ขอเพิ่มโควต้า
หากต้องการดูหรือเปลี่ยนขีดจำกัดการใช้งานสำหรับโปรเจ็กต์ หรือต้องการขอเพิ่มโควต้า ให้ทำดังนี้
- หากยังไม่มีบัญชีการเรียกเก็บเงินสำหรับโปรเจ็กต์ ให้สร้างบัญชี
- ไปที่หน้า API ที่เปิดใช้ในไลบรารี API ในคอนโซล API แล้วเลือก API จากรายการ
- หากต้องการดูและเปลี่ยนการตั้งค่าที่เกี่ยวข้องกับโควต้า ให้เลือกโควต้า หากต้องการดูสถิติการใช้งาน ให้เลือกการใช้งาน
ใช้ 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 ทั้งหมดจะใช้งานได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม การขอโควต้าเกินขีดจํากัดจะไม่ทำให้เกิดค่าใช้จ่ายเพิ่มเติมและระบบจะไม่เรียกเก็บเงินจากบัญชีของคุณ