সীমা এবং কোটা গুগল পরিকাঠামোকে এমন একটি স্বয়ংক্রিয় প্রক্রিয়া থেকে রক্ষা করে যা রিপোর্টস এপিআই (Reports API) অনুপযুক্তভাবে ব্যবহার করে। একটি এপিআই থেকে অতিরিক্ত অনুরোধ একটি নিরীহ টাইপোর কারণে হতে পারে, অথবা এমন একটি অদক্ষভাবে ডিজাইন করা সিস্টেমের কারণেও হতে পারে যা অপ্রয়োজনীয় এপিআই কল করে। কারণ যাই হোক না কেন, গুগল ওয়ার্কস্পেস সিস্টেমের সামগ্রিক সুস্থতার জন্য একটি নির্দিষ্ট উৎস থেকে ট্র্যাফিক একটি নির্দিষ্ট স্তরে পৌঁছালে তা ব্লক করা আবশ্যক। এটি নিশ্চিত করে যে একজন ডেভেলপারের কার্যকলাপ বৃহত্তর কমিউনিটিকে নেতিবাচকভাবে প্রভাবিত করতে পারবে না।
যদি কোনো কারণে আপনার এপিআই (API) অনুরোধ ব্যর্থ হয়, তবে আপনি একটি HTTP স্ট্যাটাস কোড প্রতিক্রিয়া পাবেন। ৪০৩ স্ট্যাটাস কোডে ভুল ইনপুট সম্পর্কিত ত্রুটির তথ্য থাকে এবং ৫০৩ HTTP স্ট্যাটাস কোডে কোন এপিআই কোটা অতিক্রম করা হয়েছে তা নির্দেশ করে এমন ত্রুটির তথ্য থাকে। এই প্রতিক্রিয়াগুলো আপনার কাস্টম অ্যাপ্লিকেশনকে এই ত্রুটিগুলো শনাক্ত করতে এবং যথাযথ ব্যবস্থা নিতে সাহায্য করে।
যদি আপনার অনুরোধগুলি একটি নির্দিষ্ট সময়ের মধ্যে সম্পন্ন করার প্রয়োজন হয়, তবে আপনার জাভা বা সি# অ্যাপ্লিকেশনে অনুরোধগুলি সমান্তরালভাবে পাঠান বা একাধিক থ্রেড ব্যবহার করুন। সমান্তরাল অনুরোধের একটি উদাহরণ হলো, একই সাথে একজন ব্যবহারকারীর থেকে অনেক ইমেল যোগ বা অপসারণ করার পরিবর্তে বিভিন্ন ব্যবহারকারীর কাছ থেকে অল্প অল্প করে ইমেলের অনুরোধ করা। থ্রেডের ক্ষেত্রে, ১০টি থ্রেড দিয়ে শুরু করার চেষ্টা করুন, প্রতিটি ব্যবহারকারীর ইমেলের জন্য একটি করে থ্রেড। মনে রাখবেন, থ্রেড ব্যবহারের এই সুপারিশের কিছু সীমাবদ্ধতা রয়েছে এবং এটি সব API পরিস্থিতির জন্য উপযোগী নয়। অনুরোধের সংখ্যা খুব বেশি হয়ে গেলে কোটা ত্রুটি দেখা দেবে।
সময়-ভিত্তিক সমস্ত ত্রুটির (প্রতি থ্রেডে N সেকেন্ডের জন্য সর্বোচ্চ N বিষয়) ক্ষেত্রে, বিশেষ করে 503 স্ট্যাটাস কোড ত্রুটির জন্য, আমরা সুপারিশ করি যে আপনার কোড যেন এক্সেপশনটি ক্যাচ করে এবং একটি এক্সপোনেনশিয়াল ব্যাকঅফ অ্যালগরিদম ব্যবহার করে, ব্যর্থ কলটি পুনরায় চেষ্টা করার আগে অল্প কিছুক্ষণ অপেক্ষা করে। একটি থ্রেডের জন্য রিপোর্টস এপিআই-এর একটি উদাহরণ হলো ৫ সেকেন্ড অপেক্ষা করে ব্যর্থ কলটি পুনরায় চেষ্টা করা। যদি অনুরোধটি সফল হয়, তবে অন্য থ্রেডগুলোর জন্য এই পদ্ধতিটি পুনরাবৃত্তি করুন। যদি দ্বিতীয় অনুরোধটিও সফল না হয়, তবে একটি কল সফল না হওয়া পর্যন্ত আপনার অ্যাপ্লিকেশনটির অনুরোধের সংখ্যা কমিয়ে আনা উচিত। উদাহরণস্বরূপ, প্রাথমিক ৫ সেকেন্ডের বিলম্ব বাড়িয়ে ১০ সেকেন্ড করুন এবং আপনার ব্যর্থ কলটি আবার চেষ্টা করুন। এছাড়াও, পুনরায় চেষ্টার একটি সীমা নির্ধারণ করুন। উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশনটি ব্যবহারকারীকে ত্রুটি দেখানোর আগে বিভিন্ন বিলম্বের সময় সহ একটি অনুরোধ ৫ থেকে ৭ বার পুনরায় চেষ্টা করতে পারে।
সীমা
| এপিআই সীমা বিভাগ | সীমা |
|---|---|
| QPS এবং QPD হার রিপোর্ট করুন | এপিআই আপনার গুগল ক্লাউড প্রোজেক্টের জন্য অনুরোধের সংখ্যা সীমিত করে। গুগল ক্লাউড কনসোলে সেট করা ডিফল্ট মান হলো প্রতি গুগল ক্লাউড প্রোজেক্টে, প্রতি ব্যবহারকারীর জন্য প্রতি মিনিটে ২,৪০০টি কোয়েরি। আপনি আপনার গুগল ক্লাউড প্রোজেক্টের অ্যাডমিন এসডিকে এপিআই কোটাস পেজ থেকে এই সীমাটি বাড়াতে পারেন। এই সীমাগুলো অতিক্রম করা হলে, সার্ভার একটি HTTP 503 স্ট্যাটাস কোড ফেরত দেয়। আপনার অনুরোধগুলো পুনরায় চেষ্টা করার সময় এক্সপোনেনশিয়াল ব্যাকঅফ অ্যালগরিদম ব্যবহার করুন। |
activities.list জন্য অতিরিক্ত সীমা। | activities.list API-এর জন্য প্রতি মিনিটে ২৫০টি ফিল্টার কোয়েরির (প্রতি ঘন্টায় ১৫,০০০টি ফিল্টার কোয়েরি) একটি অতিরিক্ত সীমা রয়েছে। একটি ফিল্টার কোয়েরি হলো এমন একটি API অনুরোধ, যাতে নিম্নলিখিত কোয়েরি প্যারামিটারগুলোর মধ্যে অন্তত একটি অন্তর্ভুক্ত থাকে:
|
| এপিআই কোটা বিভাগ | কোটা |
| সর্বোচ্চ ফলাফল | একটি এপিআই-এর রেসপন্সের প্রতিটি পৃষ্ঠায় তালিকাভুক্ত রেকর্ডের সংখ্যা ০ থেকে ১০০০ পর্যন্ত হতে পারে। ডিফল্ট সংখ্যা হলো ১০০০টি রেকর্ড। |
অন্যান্য ধরণের সীমা
| অন্যান্য ধরণের সীমা | সীমাবদ্ধতা এবং নির্দেশিকা |
|---|---|
| ডেটা ফরম্যাট, ডিফল্ট | ডিফল্ট ডেটা ফরম্যাট হলো JSON। এপিআইটি Atom ফরম্যাটও সমর্থন করে। |
| অননুমোদিত অনুরোধ | গুগল এপিআই-তে অননুমোদিত অনুরোধের অনুমতি দেয় না। কোনো অনুমোদন টোকেন প্রদান করা না হলে অনুরোধটিকে অননুমোদিত বলে গণ্য করা হয়। আরও তথ্যের জন্য, অনুরোধ অনুমোদন (Authorizing requests) দেখুন। |
| সতর্কবার্তা |
|
কার্যক্রমের তালিকার জন্য সর্বোত্তম অনুশীলন।
activities.list মেথডটি অডিট তদন্তের জন্য ব্যবহার করা হবে বলে আশা করা হয়। সর্বোত্তম পারফরম্যান্সের জন্য, আপনার অনুরোধে startTime এবং endTime প্যারামিটার ব্যবহার করে একটি সময়সীমা অন্তর্ভুক্ত করা উচিত । সংকীর্ণ সময়সীমার ফলে প্রতিক্রিয়ার সময় উল্লেখযোগ্যভাবে দ্রুত হয়। এই মেথডটি বিপুল পরিমাণে অডিট লগ পুনরুদ্ধারের জন্য উদ্দিষ্ট নয়। আপনি যদি নিয়মিত আপনার activities.list ফিল্টার অনুরোধের কোটা শেষ করে ফেলেন, তাহলে নিম্নলিখিত বিকল্পগুলি বিবেচনা করুন:
- BigQuery-তে Google ওয়ার্কস্পেস লগ এক্সপোর্ট করার ব্যবস্থা করুন এবং কোনো API কোটার সীমাবদ্ধতা ছাড়াই আপনার প্রয়োজনীয় ডেটা পুনরুদ্ধার ও বিশ্লেষণ করতে BigQuery-এর শক্তিশালী কোয়েরি API ব্যবহার করুন।
- ফিল্টার রিকোয়েস্ট ব্যবহার করার পরিবর্তে, টাইম রেঞ্জ সহ নন-ফিল্টার রিকোয়েস্ট ব্যবহার করুন এবং ক্লায়েন্ট-সাইড ফিল্টারিং সম্পাদন করুন (অর্থাৎ, আপনার অ্যাপ্লিকেশনে ফিল্টারিং লজিকটি প্রয়োগ করুন)। এর ফলে আপনি প্রতি মিনিটে ২৫০টি ফিল্টার কোয়েরির সীমা অতিক্রম করতে পারবেন, কিন্তু তারপরেও আপনি প্রতি ব্যবহারকারী প্রতি গুগল ক্লাউড প্রজেক্টের জন্য প্রতি মিনিটে ২,৪০০টি কোয়েরির সীমার অধীন থাকবেন।