Google ปฏิทิน API มีโควต้าเพื่อให้มั่นใจว่าผู้ใช้ทุกคนจะใช้ API นี้อย่างเป็นธรรม ข้อจำกัดสำคัญ 3 ประการที่ควรพิจารณาเมื่อใช้ Calendar API มีดังนี้
- โควต้าการใช้งาน API จะบังคับใช้ต่อโปรเจ็กต์และต่อผู้ใช้ ดูข้อมูลเพิ่มเติมได้ในส่วนถัดไป
- ขีดจำกัดการใช้งานปฏิทินทั่วไป: หลีกเลี่ยงขีดจำกัดการใช้งานปฏิทิน
- ขีดจำกัดในการดำเนินงาน: คุณอาจถูกจำกัดอัตราได้ทุกเมื่อ เช่น หากคุณพยายามเขียนไปยังปฏิทินเดียวอย่างรวดเร็ว
ประเภทโควต้าการใช้งาน Calendar API
ระบบจะบังคับใช้โควต้า 2 ประเภท ได้แก่
- ต่อนาทีต่อโปรเจ็กต์: นี่คือจำนวนคำขอที่โปรเจ็กต์ Google Cloud สร้างขึ้น
- ต่อนาทีต่อโปรเจ็กต์ต่อผู้ใช้: นี่คือจำนวนคำขอที่ผู้ใช้รายใดรายหนึ่งในโปรเจ็กต์ Cloud ของคุณส่ง ขีดจํากัดนี้มีจุดประสงค์เพื่อ ช่วยให้คุณมั่นใจได้ว่าการใช้งานจะกระจายไปยังผู้ใช้ของคุณอย่างเป็นธรรม
โควต้าจะคำนวณต่อนาทีโดยใช้กรอบเวลาแบบเลื่อน ดังนั้นการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วซึ่งเกินโควต้าต่อนาทีในช่วง 1 นาทีจะส่งผลให้มีการจำกัดอัตราในช่วงเวลาถัดไป เพื่อให้มั่นใจว่าโดยเฉลี่ยแล้วการใช้งานของคุณจะยังคงอยู่ภายในโควต้า
หากใช้โควต้าใดโควต้าหนึ่งเกิน คุณจะถูกจำกัดอัตราและได้รับรหัสสถานะ 403 usageLimits
หรือรหัสสถานะ 429 usageLimits
ในการค้นหา หากเกิดกรณีเช่นนี้ คุณสามารถทำดังนี้
- โปรดปฏิบัติตามแนวทางปฏิบัติแนะนำทั้งหมดต่อไปนี้ ใช้การถอยแบบทวีคูณ สุ่มรูปแบบการเข้าชม ใช้การแจ้งเตือนแบบพุช
- หากโปรเจ็กต์ของคุณเติบโตขึ้นและมีผู้ใช้มากขึ้น คุณสามารถขอเพิ่มโควต้าต่อโปรเจ็กต์ได้
- หากโควต้าต่อผู้ใช้ถึงขีดจำกัดแล้ว คุณจะทำสิ่งต่อไปนี้ได้
- หากใช้บัญชีบริการ ให้ จัดสรรภาระงานให้กับผู้ใช้ หรือแบ่งภาระงานระหว่างบัญชีบริการหลายบัญชี
- แม้ว่าคุณจะขอเพิ่มโควต้าต่อผู้ใช้ได้ แต่โดยทั่วไปแล้วเราไม่แนะนำให้เพิ่มโควต้าเกินค่าเริ่มต้น เนื่องจากแอปพลิเคชันอาจเริ่มใช้งานถึงขีดจำกัดประเภทอื่นๆ เช่น ขีดจำกัดการใช้ปฏิทินทั่วไป หรือขีดจำกัดการดำเนินการ
ขอเพิ่มโควต้า
หากต้องการดูหรือเปลี่ยนขีดจำกัดการใช้งานสำหรับโปรเจ็กต์ หรือขอเพิ่มโควต้า ให้ทำดังนี้
- หากยังไม่มีบัญชีสำหรับการเรียกเก็บเงิน สำหรับโปรเจ็กต์ ให้สร้างบัญชี
- ไปที่หน้า API ที่เปิดใช้ของ คลัง API ใน API Console แล้วเลือก API จากรายการ
- หากต้องการดูและเปลี่ยนการตั้งค่าที่เกี่ยวข้องกับโควต้า ให้เลือกโควต้า หากต้องการดู สถิติการใช้งาน ให้เลือกการใช้งาน
ใช้ Exponential Backoff
เมื่อต้องการให้คุณลดอัตราคำขอ เราจะแสดงการตอบกลับ 403 "usageLimits" หรือการตอบกลับ 429 (ดูเอกสารประกอบข้อผิดพลาดฉบับเต็ม) นี่ไม่ใช่ข้อผิดพลาดร้ายแรง และเราคาดหวังให้คุณลองส่งคำขออีกครั้งหลังจากผ่านช่วงเวลาสั้นๆ หากคำขอเข้ามาเร็วเกินไป เราจะขออีกครั้ง และอื่นๆ เพื่อให้การทำงานนี้เป็นไปอย่างถูกต้อง ความล่าช้าระหว่างคำขอควรเพิ่มขึ้นเมื่อเวลาผ่านไป
โดยทั่วไป คุณควรใช้การหยุดชะงักแบบทวีคูณที่ถูกตัด ซึ่งเอกสารประกอบของ Cloud Storage มีคำอธิบายที่ดีเกี่ยวกับวิธีการทำงานและอัลกอริทึมที่แนะนำ หากคุณใช้ไลบรารีไคลเอ็นต์ของ Google โดยปกติแล้วระบบจะจัดการให้คุณ โปรดดูเอกสารประกอบของไลบรารี โดยปกติแล้ว คุณควรใช้การติดตั้งใช้งานไลบรารี แทนการเขียนเอง
สุ่มรูปแบบการเข้าชม
ไคลเอ็นต์ปฏิทินมีแนวโน้มที่จะเกิดรูปแบบการเข้าชมที่ผันผวนเนื่องจาก ไคลเอ็นต์หลายรายดำเนินการพร้อมกัน ตัวอย่างเช่น แนวทางปฏิบัติที่ไม่ดีที่พบบ่อยสำหรับไคลเอ็นต์ปฏิทินคือการซิงค์แบบเต็มตอนเที่ยงคืน ซึ่งเกือบทั้งหมดจะทำให้คุณใช้โควต้าต่อนาทีเกิน และส่งผลให้มีการจำกัดอัตราและการหยุดชั่วคราว
โปรดกระจายการเข้าชมตลอดทั้งวันเพื่อหลีกเลี่ยงปัญหานี้ หากเป็นไปได้ หากลูกค้าต้องซิงค์ทุกวัน ให้ลูกค้า กำหนดเวลาแบบสุ่ม (แตกต่างกันสำหรับลูกค้าแต่ละราย) หากต้องการดำเนินการ เป็นประจำ ให้เว้นช่วงเวลา +/- 25% ซึ่งจะช่วยกระจายการเข้าชม ให้สม่ำเสมอมากขึ้นและมอบประสบการณ์การใช้งานที่ดียิ่งขึ้น
ใช้ข้อความ Push
กรณีการใช้งานทั่วไปคือการต้องการดำเนินการเมื่อใดก็ตามที่มีการเปลี่ยนแปลงในปฏิทินของผู้ใช้ รูปแบบที่ไม่ควรทำในที่นี้คือการสำรวจปฏิทินที่สนใจทุกรายการซ้ำๆ ซึ่งจะทำให้โควต้าทั้งหมดหมดลงอย่างรวดเร็วมาก เช่น หากแอปพลิเคชันมีผู้ใช้ 5,000 รายและสำรวจปฏิทินของผู้ใช้แต่ละรายทุกๆ นาที คุณจะต้องมีโควต้าต่อนาทีอย่างน้อย 5,000 รายการแม้จะยังไม่ได้ดำเนินการใดๆ ก็ตาม
แอปพลิเคชันฝั่งเซิร์ฟเวอร์สามารถลงทะเบียนรับการแจ้งเตือนแบบพุชได้ ซึ่งจะช่วยให้เรา
แจ้งให้คุณทราบเมื่อมีสิ่งที่คุณสนใจเกิดขึ้น ซึ่งต้องใช้เวลาในการตั้งค่ามากกว่า แต่จะช่วยให้คุณใช้โควต้าได้อย่างมีประสิทธิภาพมากขึ้นอย่างมาก และมอบประสบการณ์การใช้งานที่ดีขึ้น ตรวจสอบว่าคุณได้ระบุ eventType
ที่ต้องการรับการแจ้งเตือน ดูข้อมูลเพิ่มเติมได้ที่
การแจ้งเตือนแบบพุช
การบัญชีที่เหมาะสมด้วยบัญชีบริการ
หากแอปพลิเคชันของคุณส่งคำขอโดยใช้การมอบสิทธิ์ทั้งโดเมน
โดยค่าเริ่มต้น ระบบจะเรียกเก็บเงินจากบัญชีบริการตามโควต้า "ต่อนาทีต่อ
โปรเจ็กต์ต่อผู้ใช้" ไม่ใช่ผู้ใช้ที่คุณแอบอ้าง ซึ่งหมายความว่า
บัญชีบริการมีแนวโน้มที่จะใช้โควต้าจนหมดและถูกจำกัดอัตรา
แม้ว่าจะทำงานในปฏิทินของผู้ใช้หลายรายก็ตาม คุณหลีกเลี่ยงปัญหานี้ได้โดยใช้quotaUser
พารามิเตอร์ URL (หรือส่วนหัว x-goog-quota-user
HTTP
) เพื่อระบุผู้ใช้ที่จะเรียกเก็บเงิน โดยจะใช้สำหรับการคำนวณโควต้าเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ส่วน
การจำกัดคำขอต่อผู้ใช้
ในเอกสารประกอบของ Cloud
ทดสอบการจัดการขีดจำกัดโควต้า
เพื่อให้มั่นใจว่าแอปพลิเคชันของคุณจะจัดการกับการเข้าถึงโควต้าในทางปฏิบัติได้อย่างราบรื่น (เช่น โดยลองอีกครั้งด้วยการหยุดพักแบบทวีคูณ) และเพื่อลดการรบกวนที่อาจเกิดขึ้นกับผู้ใช้ เราขอแนะนำอย่างยิ่งให้ทดสอบสถานการณ์นี้ในสภาพแวดล้อมจริง
เพื่อให้การทดสอบดังกล่าวไม่รบกวนการใช้งานแอปพลิเคชันจริง เราขอแนะนำให้ลงทะเบียนโปรเจ็กต์ทดสอบแยกต่างหากในคอนโซล Google API และกำหนดค่าในลักษณะเดียวกับโปรเจ็กต์ที่ใช้งานจริง จากนั้นคุณจะตั้งค่าโควต้าที่ต่ำเกินจริง สำหรับโปรเจ็กต์นี้และสังเกตลักษณะการทำงานของแอปพลิเคชันได้
ราคา
การใช้ Google Calendar API ทั้งหมดจะใช้งานได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม การส่งคำขอเกินโควต้า จะไม่ทำให้เกิดค่าใช้จ่ายเพิ่มเติมและระบบจะไม่เรียกเก็บเงินจากบัญชีของคุณ