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

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

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

หากเกินโควต้า คุณจะถูกจำกัดอัตราและได้รับการตอบกลับ 403 "usageLimits" หรือ 429 สำหรับคำค้นหา ในกรณีนี้ คุณควรใช้การย้อนกลับแบบทวีคูณแล้วลองอีกครั้งในภายหลัง นอกจากนี้ อาจมีการจำกัดอัตราการแสดงโฆษณาได้ทุกเมื่อเนื่องด้วยเหตุผลด้านการดำเนินการ แต่โดยทั่วไปแล้วจะเกิดขึ้นไม่บ่อยนัก หากโครงการของคุณอยู่ภายในโควต้าเหล่านี้ จะไม่มีการจำกัดจำนวนคำขอที่คุณสร้างได้ต่อวัน

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

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

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

ใช้ 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 ทั้งหมดไม่มีค่าใช้จ่ายเพิ่มเติม การใช้งานเกินขีดจำกัดคำขอโควต้าจะไม่ก่อให้เกิดค่าใช้จ่ายเพิ่มเติม และจะไม่มีการเรียกเก็บเงินจากบัญชีของคุณ