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