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

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

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

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

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

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

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

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