গুগল ক্যালেন্ডার এপিআই-এর কোটা রয়েছে, যাতে সকল ব্যবহারকারী এর ন্যায্য ব্যবহার নিশ্চিত করতে পারে। ক্যালেন্ডার এপিআই ব্যবহার করার সময় তিনটি গুরুত্বপূর্ণ সীমাবদ্ধতা বিবেচনা করতে হবে:
- প্রজেক্ট এবং ব্যবহারকারী প্রতি এপিআই ব্যবহারের কোটা প্রযোজ্য। আরও তথ্যের জন্য পরবর্তী বিভাগ দেখুন।
- ক্যালেন্ডার ব্যবহারের সাধারণ সীমাবদ্ধতা : ক্যালেন্ডার ব্যবহারের সীমাবদ্ধতা এড়িয়ে চলুন।
- কার্যক্ষমতার সীমাবদ্ধতা: যেকোনো সময় আপনার ডেটা ব্যবহারের গতি সীমিত করা হতে পারে। উদাহরণস্বরূপ, যদি আপনি খুব দ্রুত পরপর একটিমাত্র ক্যালেন্ডারে ডেটা লেখার চেষ্টা করেন।
ক্যালেন্ডার এপিআই ব্যবহারের কোটার প্রকারভেদ
দুই ধরনের কোটা বলবৎ করা হয়:
- প্রতি মিনিটে প্রতি প্রজেক্টে: এটি হলো আপনার গুগল ক্লাউড প্রজেক্টের করা অনুরোধের সংখ্যা।
- প্রতি মিনিটে প্রতি প্রজেক্টে প্রতি ব্যবহারকারীর জন্য: এটি হলো আপনার ক্লাউড প্রজেক্টে কোনো একজন নির্দিষ্ট ব্যবহারকারীর করা অনুরোধের সংখ্যা। এই সীমাটি আপনার ব্যবহারকারীদের মধ্যে ব্যবহারের ন্যায্য বন্টন নিশ্চিত করতে আপনাকে সাহায্য করে।
কোটা একটি স্লাইডিং উইন্ডো ব্যবহার করে প্রতি মিনিটে গণনা করা হয়, তাই কোনো এক মিনিটে ট্র্যাফিকের আকস্মিক বৃদ্ধি যদি আপনার প্রতি মিনিটের কোটা অতিক্রম করে, তাহলে পরবর্তী উইন্ডোতে রেট লিমিটিং প্রয়োগ করা হবে, যাতে গড়ে আপনার ব্যবহার কোটার মধ্যেই থাকে।
যদি কোনো কোটা অতিক্রম করা হয়, তাহলে আপনার রেট লিমিট করা হবে এবং আপনার কোয়েরিগুলোতে একটি 403 usageLimits স্ট্যাটাস কোড অথবা একটি 429 usageLimits স্ট্যাটাস কোড পাবেন। এমনটা হলে, আপনি যা করতে পারেন তা হলো:
- নিশ্চিত করুন যে আপনি সমস্ত সেরা অনুশীলনগুলি অনুসরণ করছেন: এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করুন , ট্র্যাফিক প্যাটার্ন এলোমেলো করুন , পুশ নোটিফিকেশন ব্যবহার করুন ।
- আপনার প্রজেক্টের পরিধি বাড়লে এবং ব্যবহারকারীর সংখ্যা বৃদ্ধি পেলে, আপনি প্রজেক্ট-ভিত্তিক কোটা বৃদ্ধির জন্য অনুরোধ করতে পারেন।
- যদি ব্যবহারকারী প্রতি কোটার সীমা পূর্ণ হয়ে যায়, তাহলে আপনি নিম্নলিখিত কাজগুলো করতে পারেন:
- আপনি যদি একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করেন, তাহলে ব্যবহারকারীদের মধ্যে লোড বন্টন করুন অথবা একাধিক সার্ভিস অ্যাকাউন্টের মধ্যে তা ভাগ করে দিন।
- যদিও আপনি ব্যবহারকারী-প্রতি কোটা বাড়ানোর জন্য অনুরোধ করতে পারেন, তবে সাধারণত ডিফল্ট মানের উপরে এটি বাড়ানোর পরামর্শ দেওয়া হয় না, কারণ এতে আপনার অ্যাপ্লিকেশনটি অন্যান্য ধরনের সীমাবদ্ধতার সম্মুখীন হতে পারে, যেমন— সাধারণ ক্যালেন্ডার ব্যবহারের সীমাবদ্ধতা বা পরিচালনগত সীমাবদ্ধতা।
কোটা বৃদ্ধির জন্য অনুরোধ
আপনার প্রোজেক্টের ব্যবহারের সীমা দেখতে বা পরিবর্তন করতে, অথবা আপনার কোটা বাড়ানোর অনুরোধ করতে, নিম্নলিখিতগুলি করুন:
- আপনার প্রোজেক্টের জন্য যদি আগে থেকে কোনো বিলিং অ্যাকাউন্ট না থাকে, তাহলে একটি তৈরি করুন।
- এপিআই কনসোলে থাকা এপিআই লাইব্রেরির 'এনাবলড এপিআই' পেজটিতে যান এবং তালিকা থেকে একটি এপিআই নির্বাচন করুন।
- কোটা-সম্পর্কিত সেটিংস দেখতে ও পরিবর্তন করতে, ‘কোটা’ নির্বাচন করুন। ব্যবহারের পরিসংখ্যান দেখতে, ‘ব্যবহার’ নির্বাচন করুন।
এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করুন
যখন আমরা চাইব আপনি আপনার অনুরোধের হার কমিয়ে আনুন, তখন আমরা একটি 403 "usageLimits" রেসপন্স অথবা একটি 429 রেসপন্স ফেরত দেব ( সম্পূর্ণ এরর ডকুমেন্টেশন দেখুন)। এটি কোনো মারাত্মক ত্রুটি নয় এবং আমরা আশা করি আপনি অল্প বিরতির পর অনুরোধটি পুনরায় চেষ্টা করবেন। যদি এরপরও অনুরোধগুলো খুব দ্রুত আসতে থাকে, আমরা আবার জিজ্ঞাসা করব, এবং এই প্রক্রিয়া চলতেই থাকবে। এটি সঠিকভাবে কাজ করার জন্য, সময়ের সাথে সাথে অনুরোধগুলোর মধ্যেকার বিলম্ব বৃদ্ধি পাওয়াটা জরুরি।
সাধারণত, আপনার ট্রাঙ্কেটেড এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করা উচিত; ক্লাউড স্টোরেজ ডকুমেন্টেশনে এটি কীভাবে কাজ করে এবং পছন্দের অ্যালগরিদম সম্পর্কে একটি ভালো ব্যাখ্যা রয়েছে। আপনি যদি একটি গুগল ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তবে এটি সাধারণত আপনার জন্য পরিচালিত হবে; আপনার লাইব্রেরির ডকুমেন্টেশন দেখুন। সাধারণত, নিজের কোড লেখার পরিবর্তে লাইব্রেরির ইমপ্লিমেন্টেশন ব্যবহার করা উচিত।
ট্র্যাফিক প্যাটার্ন এলোমেলো করুন
একাধিক ক্লায়েন্ট একই সময়ে বিভিন্ন অপারেশন চালানোর কারণে ক্যালেন্ডার ক্লায়েন্টগুলোতে ট্র্যাফিকের আকস্মিক বৃদ্ধির প্রবণতা দেখা যায়। উদাহরণস্বরূপ, ক্যালেন্ডার ক্লায়েন্টের জন্য একটি সাধারণ খারাপ অভ্যাস হলো মধ্যরাতে সম্পূর্ণ সিঙ্ক করা। এর ফলে প্রায় নিশ্চিতভাবেই আপনার প্রতি-মিনিটের কোটা অতিক্রম করবে এবং রেট লিমিটিং ও ব্যাকঅফের মতো পরিস্থিতি তৈরি হবে।
এটি এড়ানোর জন্য, যথাসম্ভব আপনার ট্র্যাফিক যেন সারা দিন জুড়ে ছড়িয়ে থাকে তা নিশ্চিত করুন। যদি আপনার ক্লায়েন্টকে প্রতিদিন সিঙ্ক করার প্রয়োজন হয়, তবে ক্লায়েন্টকে একটি এলোমেলো সময় নির্ধারণ করতে দিন (প্রতিটি ক্লায়েন্টের জন্য আলাদা)। যদি আপনাকে নিয়মিতভাবে কোনো অপারেশন সম্পাদন করতে হয়, তবে ব্যবধানটি +/- ২৫% পর্যন্ত পরিবর্তন করুন। এটি ট্র্যাফিককে আরও সুষমভাবে বন্টন করবে এবং ব্যবহারকারীকে অনেক ভালো অভিজ্ঞতা দেবে।
পুশ নোটিফিকেশন ব্যবহার করুন
একটি সাধারণ ব্যবহার হলো ব্যবহারকারীর ক্যালেন্ডারে কোনো পরিবর্তন হলেই একটি নির্দিষ্ট কাজ সম্পাদন করা। এক্ষেত্রে একটি ভুল পদ্ধতি হলো বারবার প্রতিটি প্রাসঙ্গিক ক্যালেন্ডার থেকে তথ্য সংগ্রহ করা। এর ফলে খুব দ্রুত আপনার সমস্ত কোটা শেষ হয়ে যাবে—উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনে ৫,০০০ ব্যবহারকারী থাকে এবং এটি প্রতি মিনিটে প্রত্যেক ব্যবহারকারীর ক্যালেন্ডার থেকে তথ্য সংগ্রহ করে, তাহলে কোনো কাজ শুরু হওয়ার আগেই প্রতি মিনিটে কমপক্ষে ৫,০০০ কোটার প্রয়োজন হবে।
সার্ভার-সাইড অ্যাপ্লিকেশনগুলো পুশ নোটিফিকেশনের জন্য রেজিস্টার করতে পারে, যার মাধ্যমে কোনো গুরুত্বপূর্ণ ঘটনা ঘটলে আমরা আপনাকে জানাতে পারি। এগুলো সেট আপ করতে কিছুটা বেশি পরিশ্রম করতে হয়, কিন্তু এর ফলে আপনার কোটা অনেক বেশি দক্ষতার সাথে ব্যবহার করা যায় এবং ব্যবহারকারীর অভিজ্ঞতাও উন্নত হয়। আপনি যে ইভেন্টের জন্য বিজ্ঞপ্তি পেতে চান, তার eventType অবশ্যই উল্লেখ করবেন। আরও তথ্যের জন্য, পুশ নোটিফিকেশন (Push notifications) দেখুন।
পরিষেবা অ্যাকাউন্টগুলির সাথে সঠিক হিসাবরক্ষণ
যদি আপনার অ্যাপ্লিকেশনটি ডোমেন-ব্যাপী ডেলিগেশন ব্যবহার করে অনুরোধ সম্পাদন করে, তাহলে ডিফল্টরূপে আপনি যে ব্যবহারকারীকে ইমপারসোনেট করছেন তার পরিবর্তে সার্ভিস অ্যাকাউন্টকে "প্রতি মিনিট প্রতি প্রজেক্ট প্রতি ব্যবহারকারী" কোটার ভিত্তিতে চার্জ করা হয়। এর মানে হলো, সার্ভিস অ্যাকাউন্টটি একাধিক ব্যবহারকারীর ক্যালেন্ডারে কাজ করলেও, এর কোটা শেষ হয়ে যাওয়ার এবং রেট-লিমিটেড হওয়ার সম্ভাবনা থাকে। কোন ব্যবহারকারীকে চার্জ করা হবে তা নির্দেশ করতে আপনি quotaUser URL প্যারামিটার (অথবা x-goog-quota-user HTTP হেডার) ব্যবহার করে এটি এড়াতে পারেন। এটি শুধুমাত্র কোটা গণনার জন্য ব্যবহৃত হয়। আরও তথ্যের জন্য ক্লাউড ডকুমেন্টেশনে "প্রতি ব্যবহারকারীর জন্য অনুরোধ সীমিতকরণ" দেখুন।
পরীক্ষার কোটা সীমা পরিচালনা
আপনার অ্যাপ্লিকেশনটি বাস্তবে কোটার সীমায় পৌঁছানোর বিষয়টি সুষ্ঠুভাবে সামলাতে পারে কিনা (যেমন এক্সপোনেনশিয়াল ব্যাকঅফ সহ পুনরায় চেষ্টা করার মাধ্যমে) এবং ব্যবহারকারীদের সম্ভাব্য অসুবিধাগুলো ন্যূনতম পর্যায়ে রাখতে, আমরা বাস্তব পরিবেশে এই পরিস্থিতিটি পরীক্ষা করার জন্য দৃঢ়ভাবে সুপারিশ করছি।
এই ধরনের পরীক্ষা যাতে আপনার আসল অ্যাপ্লিকেশন ব্যবহারে কোনো ব্যাঘাত না ঘটায়, সেজন্য আমরা গুগল এপিআই কনসোলে একটি আলাদা শুধুমাত্র-পরীক্ষামূলক প্রজেক্ট নিবন্ধন করার এবং সেটিকে আপনার প্রোডাকশন প্রজেক্টের মতোই কনফিগার করার পরামর্শ দিচ্ছি। এরপর আপনি এই প্রজেক্টের জন্য কৃত্রিমভাবে কম কোটা সেট করে আপনার অ্যাপ্লিকেশনের আচরণ পর্যবেক্ষণ করতে পারেন।
মূল্য নির্ধারণ
গুগল ক্যালেন্ডার এপিআই-এর সম্পূর্ণ ব্যবহার কোনো অতিরিক্ত খরচ ছাড়াই করা যায়। কোটা অনুরোধের সীমা অতিক্রম করলেও কোনো অতিরিক্ত চার্জ লাগে না এবং আপনার অ্যাকাউন্টে কোনো বিল পাঠানো হয় না।