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