গুগল শিটস এপিআই একটি শেয়ার্ড সার্ভিস, এবং সকল ব্যবহারকারীর জন্য গুগল ওয়ার্কস্পেস সিস্টেমের সার্বিক পারফরম্যান্স সুরক্ষিত রাখতে আমরা কোটা ও সীমাবদ্ধতা প্রয়োগ করি।
কোটার সীমা
যদিও শীটস এপিআই-এর অনুরোধের জন্য কোনো নির্দিষ্ট আকারের সীমা নেই, ব্যবহারকারীরা গুগল শীটস-এর নিয়ন্ত্রণের বাইরে থাকা বিভিন্ন প্রসেসিং উপাদানের কারণে সীমাবদ্ধতার সম্মুখীন হতে পারেন। অনুরোধের গতি বাড়ানোর জন্য, আমরা সর্বোচ্চ ২ মেগাবাইট পেলোড ব্যবহারের পরামর্শ দিই।
শীটস এপিআই-এর প্রতি মিনিটের কোটা থাকে, এবং তা প্রতি মিনিটে রিফিল হয়। উদাহরণস্বরূপ, প্রতি প্রজেক্টে প্রতি মিনিটে ৩০০টি রিড রিকোয়েস্টের একটি সীমা রয়েছে। যদি আপনার অ্যাপ এক মিনিটে ৩৫০টি রিকোয়েস্ট পাঠায়, তাহলে অতিরিক্ত ৫০টি রিকোয়েস্ট কোটা অতিক্রম করে এবং একটি 429: Too many requests HTTP স্ট্যাটাস কোড রেসপন্স তৈরি করে। এমনটা হলে, আপনার একটি এক্সপোনেনশিয়াল ব্যাকঅফ অ্যালগরিদম ব্যবহার করা উচিত। ১ মিনিট পর, আপনি আবার রিকোয়েস্টগুলো চালাতে পারবেন।
নিম্নলিখিত সারণিতে অনুরোধের সীমা বিস্তারিতভাবে উল্লেখ করা হয়েছে:
| কোটা | |||||
|---|---|---|---|---|---|
| অনুরোধ পড়ুন |
| ||||
| অনুরোধ লিখুন |
| ||||
ফাইল সীমা সম্পর্কে বিস্তারিত জানতে, গুগল ড্রাইভে সংরক্ষণযোগ্য ফাইলসমূহ দেখুন।
আচরণ এবং সীমাবদ্ধতা
((sheets_api_short)) নিয়ে কাজ করার সময়, নিম্নলিখিত আচরণ এবং সীমাবদ্ধতাগুলো লক্ষ্য করুন যা আপনার কোটাকে প্রভাবিত করে:
রিড রিকোয়েস্ট হলো স্প্রেডশিট থেকে ডেটা আনার জন্য ব্যবহৃত যেকোনো মেথডের কল, যেমন
getবাsearch। রাইট রিকোয়েস্ট হলো স্প্রেডশিটে পরিবর্তন আনার জন্য ব্যবহৃত যেকোনো মেথডের কল, যেমনupdate,clearবাcopyTo।ব্যবহারকারীরা কোটার সীমার মধ্যে থাকা সাপেক্ষে একই সময়ে একাধিক অনুরোধ জমা দিতে পারেন। প্রতিটি ব্যাচ অনুরোধ , যেকোনো উপ-অনুরোধ সহ, আপনার ব্যবহারের সীমার জন্য একটি এপিআই অনুরোধ হিসাবে গণনা করা হয়।
সমস্ত শীট অনুরোধ অ্যাটমিকভাবে প্রয়োগ করা হয়। অর্থাৎ, যদি কোনো অনুরোধ বৈধ না হয়, তাহলে সম্পূর্ণ আপডেটটি অসফল হয় এবং (সম্ভাব্য নির্ভরশীল) কোনো পরিবর্তনই প্রয়োগ করা হয় না।
একটি এপিআই অনুরোধ প্রসেস করার জন্য একটি সর্বোচ্চ সময়সীমা রয়েছে। যখন শীটস ১৮০ সেকেন্ডের বেশি সময় ধরে কোনো অনুরোধ প্রসেস করে, তখন অনুরোধটি একটি টাইমআউট ত্রুটি দেখায়।
আপনি যদি প্রতি মিনিটের কোটার মধ্যে থাকেন, তবে প্রতিদিন যত খুশি অনুরোধ করতে পারেন, তার কোনো সীমা নেই।
সময়-ভিত্তিক কোটা ত্রুটি সমাধান করুন
সমস্ত সময়-ভিত্তিক ত্রুটির (প্রতি X মিনিটে সর্বোচ্চ N সংখ্যক অনুরোধ) ক্ষেত্রে, আমরা সুপারিশ করি যে আপনার কোড যেন এক্সেপশনটি ক্যাচ করে এবং একটি ট্রাঙ্কেটেড এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করে, যাতে আপনার ডিভাইসগুলো অতিরিক্ত লোড তৈরি না করে।
এক্সপোনেনশিয়াল ব্যাকঅফ হলো নেটওয়ার্ক অ্যাপ্লিকেশনগুলির জন্য একটি আদর্শ ত্রুটি পরিচালনা কৌশল। একটি এক্সপোনেনশিয়াল ব্যাকঅফ অ্যালগরিদম একটি সর্বোচ্চ ব্যাকঅফ সময় পর্যন্ত, অনুরোধগুলির মধ্যে সূচকীয়ভাবে ক্রমবর্ধমান অপেক্ষার সময় ব্যবহার করে অনুরোধগুলি পুনরায় চেষ্টা করে। যদি অনুরোধগুলি তখনও অসফল হয়, তবে অনুরোধটি সফল না হওয়া পর্যন্ত সময়ের সাথে সাথে অনুরোধগুলির মধ্যে বিলম্ব বাড়ানো গুরুত্বপূর্ণ।
উদাহরণ অ্যালগরিদম
একটি এক্সপোনেনশিয়াল ব্যাকঅফ অ্যালগরিদম অনুরোধগুলোকে সূচকীয় হারে পুনরায় চেষ্টা করে, এবং একটি সর্বোচ্চ ব্যাকঅফ সময় পর্যন্ত পুনরায় চেষ্টার মধ্যবর্তী অপেক্ষার সময় বাড়িয়ে দেয়। উদাহরণস্বরূপ:
- গুগল শিটস এপিআই-তে একটি অনুরোধ পাঠান।
- অনুরোধটি ব্যর্থ হলে, 1 +
random_number_millisecondsঅপেক্ষা করুন এবং অনুরোধটি পুনরায় চেষ্টা করুন। - অনুরোধটি ব্যর্থ হলে, 2 +
random_number_millisecondsঅপেক্ষা করুন এবং অনুরোধটি পুনরায় চেষ্টা করুন। - অনুরোধটি ব্যর্থ হলে, 4 +
random_number_millisecondsঅপেক্ষা করুন এবং অনুরোধটি পুনরায় চেষ্টা করুন। - এবং এভাবেই চলতে থাকে, একটি
maximum_backoffসময় পর্যন্ত। - একটি নির্দিষ্ট সর্বোচ্চ সংখ্যক বার পর্যন্ত অপেক্ষা করতে ও পুনরায় চেষ্টা করতে থাকুন, কিন্তু দুটি চেষ্টার মধ্যবর্তী অপেক্ষার সময়কাল বাড়াবেন না।
যেখানে:
- অপেক্ষার সময় হলো
min(((2^n)+random_number_milliseconds), maximum_backoff), যেখানে প্রতিটি ইটারেশন (অনুরোধ)-এর জন্যnমান ১ করে বৃদ্ধি পায়। -
random_number_millisecondsহলো ১,০০০ বা তার কম মিলিসেকেন্ডের একটি র্যান্ডম সংখ্যা। এটি এমন পরিস্থিতি এড়াতে সাহায্য করে যেখানে অনেক ক্লায়েন্ট কোনো একটি কারণে সিনক্রোনাইজড হয়ে যায় এবং সবাই একযোগে পুনরায় চেষ্টা করে, অর্থাৎ সিনক্রোনাস তরঙ্গে অনুরোধ পাঠায়। প্রতিটি পুনঃপ্রচেষ্টার অনুরোধের পরrandom_number_millisecondsএর মান পুনরায় গণনা করা হয়। -
maximum_backoffসাধারণত ৩২ বা ৬৪ সেকেন্ড হয়ে থাকে। এর উপযুক্ত মান ব্যবহারের ধরনের ওপর নির্ভর করে।
ক্লায়েন্ট maximum_backoff সময়টিতে পৌঁছানোর পরেও পুনরায় চেষ্টা চালিয়ে যেতে পারে। এই সময়ের পরে পুনরায় চেষ্টার জন্য ব্যাকঅফ সময় আর বাড়ানোর প্রয়োজন নেই। উদাহরণস্বরূপ, যদি কোনো ক্লায়েন্ট ৬৪ সেকেন্ডের maximum_backoff সময় ব্যবহার করে, তবে এই মানে পৌঁছানোর পর ক্লায়েন্টটি প্রতি ৬৪ সেকেন্ড পর পর পুনরায় চেষ্টা করতে পারে। একটি নির্দিষ্ট পর্যায়ে, ক্লায়েন্টদের অনির্দিষ্টকালের জন্য পুনরায় চেষ্টা করা থেকে বিরত রাখা উচিত।
পুনরায় চেষ্টার মধ্যবর্তী অপেক্ষার সময় এবং পুনরায় চেষ্টার সংখ্যা আপনার ব্যবহারের ধরণ এবং নেটওয়ার্ক অবস্থার উপর নির্ভর করে।
মূল্য নির্ধারণ
গুগল শিটস এপিআই-এর সম্পূর্ণ ব্যবহার কোনো অতিরিক্ত খরচ ছাড়াই পাওয়া যায়। কোটা অনুরোধের সীমা অতিক্রম করলেও কোনো অতিরিক্ত চার্জ লাগে না এবং আপনার অ্যাকাউন্টে কোনো বিল পাঠানো হয় না।
কোটা বৃদ্ধির জন্য অনুরোধ করুন
আপনার প্রকল্পের রিসোর্স ব্যবহারের উপর নির্ভর করে, আপনি কোটা সমন্বয়ের জন্য অনুরোধ করতে চাইতে পারেন। একটি সার্ভিস অ্যাকাউন্ট দ্বারা করা এপিআই কলগুলোকে একটি একক অ্যাকাউন্ট হিসেবে বিবেচনা করা হয়। সমন্বয়কৃত কোটার জন্য আবেদন করলেই যে তা অনুমোদিত হবে, এমন কোনো নিশ্চয়তা নেই। যে কোটা সমন্বয়ের অনুরোধগুলো কোটার পরিমাণ উল্লেখযোগ্যভাবে বৃদ্ধি করবে, সেগুলো অনুমোদিত হতে বেশি সময় লাগতে পারে।
সব প্রোজেক্টের কোটা এক নয়। সময়ের সাথে সাথে আপনার গুগল ক্লাউডের ব্যবহার বাড়ার সাথে সাথে আপনার কোটার পরিমাণও বাড়ানোর প্রয়োজন হতে পারে। যদি আপনি ভবিষ্যতে ব্যবহারের উল্লেখযোগ্য বৃদ্ধি প্রত্যাশা করেন, তবে আপনি গুগল ক্লাউড কনসোলের কোটা পেজ থেকে আগে থেকেই কোটা সমন্বয়ের জন্য অনুরোধ করতে পারেন।
আরও জানতে, নিম্নলিখিত উৎসগুলো দেখুন: