লাইসেন্স হার্টবিট ও অফলাইন যাচাই
দুটি সেটিং অনুমতি নীতিতে, কিন্তু আলাদা বিষয়: নেট থাকলে কতক্ষণ পর সার্ভারে যাবে, আর যোগাযোগ না হলে কতক্ষণ চলবে।
হার্টবিট ব্যবধান: কতবার যাচাই
হার্টবিট ব্যবধান (সেকেন্ড) দিন 600, চালু থাকা অবস্থায় SDK প্রায় প্রতি 10 মিনিটে হার্টবিট পাঠায়। সফল হলে নতুন নিয়ম নেয় এবং স্থানীয় লাইসেন্স ক্যাশ হালনাগাদ করে।
১০–৮৬৪০০ সেকেন্ড দিন। দিলে 0 নির্ধারিত হার্টবিট বন্ধ করে। অ্যাপ নিজে যাচাই বা হালনাগাদ করতে পারে। সময়সূচিতে 0–10% এলোমেলো বিলম্ব যোগ হয়; ব্যবধান কখনো 600 সেকেন্ডের কম নয়।
যন্ত্রে বাঁধা লাইসেন্সের ক্যাশ বৈধ হলে আগে অনুমতি ফেরে, পরে পটভূমিতে অনলাইন যাচাই হয়; টাইমার বন্ধ থাকলেও। শুধু অনলাইন বা ভাসমান আসনে সার্ভারের অনুমোদন লাগে।
অফলাইন সময়: সার্ভার না পেলে কতক্ষণ চলবে
অফলাইন ধরনের তিন বিকল্প। হার্টবিট ব্যবধান বদলায় না।
- নির্দিষ্ট সময়ের অনুমতি
- 24 ঘণ্টা দিলে শেষ সফল অনলাইন যাচাই থেকে ক্যাশ সর্বোচ্চ 24 ঘণ্টা থাকে। এই সময় নেট বা সার্ভার সাময়িক বন্ধ হলেও সফটওয়্যার চলে। পরে সফল অনলাইন যাচাই লাগে।
- অফলাইন বিকল্প নিষিদ্ধ
- শুরুতে সার্ভারের সঙ্গে সফল যোগাযোগ চাই; ব্যর্থ হলে ডিস্ক ক্যাশ প্রবেশ দেবে না। চলার সময়ের স্বল্পমেয়াদি স্বাক্ষর সর্বোচ্চ থাকে
max(10, 心跳间隔)সেকেন্ড; অ্যাপকে যাচাই ও ফিচার অনুমতি পরীক্ষা চালিয়ে যেতে হবে। - স্থায়ী অফলাইন ব্যবহার
- স্থানীয় স্বাক্ষর দীর্ঘদিন চলে, নেট না থাকলেও অনুমতি যাচাই হয়। 30 দিনের লাইসেন্স 30 দিনেই শেষ হবে; স্থায়ী অফলাইন মানে স্থায়ী লাইসেন্স নয়।
API ব্যবহার করে offline_mode এই তিনটি বিকল্প যথাক্রমে limited, none, permanent। নির্দিষ্ট অফলাইন সময় হলে,offline_seconds ১–৩১৫৩৬০০০ সেকেন্ড; অন্য দুটিতে ০।
এই সমন্বয়গুলো কীভাবে চলে?
| হার্টবিট / অফলাইন সেটিং | আসল আচরণ |
|---|---|
| ৫ মিনিট / ২৪ ঘণ্টা | অনলাইনে প্রতি 10 মিনিটে যাচাই। অফলাইনে শেষ সফল যাচাই থেকে সর্বোচ্চ 24 ঘণ্টা চলবে |
| ৫ মিনিট / স্থায়ী অফলাইন | প্রতি ৫ মিনিটে চেষ্টা, সফল হলে নিয়ম আপডেট, যোগাযোগ না হলে বৈধ স্বাক্ষর ব্যবহার। |
| ০ / স্থায়ী অফলাইন | বৈধ ক্যাশে সরাসরি শুরু হয়, নির্ধারিত অনুরোধ নেই। নিজে যাচাই বা refresh করলে সার্ভারে যায় |
| ০ / ২৪ ঘণ্টা | নিয়মিত হার্টবিট নেই, ক্যাশ তবু শেষ হয়। অ্যাপ নিজে যাচাই করবে; হার্টবিট বন্ধে অফলাইন মেয়াদ বাড়ে না। |
অফলাইন সময় হার্টবিট ব্যবধানের চেয়ে বেশি রাখুন। প্রতি ঘণ্টায় হার্টবিট কিন্তু মাত্র 1 মিনিট অফলাইন হলে পরের হার্টবিটের আগেই স্বাক্ষর শেষ হয়; আলাদা যাচাই লাগবে।
নীতি বদলে পুরোনো লাইসেন্স বদলায় কি?
হ্যাঁ। নীতি সংরক্ষণে সীমা, ফিচার, কোটা, ধরন, রক্ষণাবেক্ষণ ও সংস্করণ সব সংযুক্ত, বাতিল না হওয়া লাইসেন্সে একই লেনদেনে সিঙ্ক হয়। আলাদা করে প্রতিটিতে নীতি প্রয়োগ লাগে না।
সিঙ্কে প্রতিটি লাইসেন্সের মেয়াদ ধরন, দিন, প্রথম সক্রিয়তা, শেষ সময়, গ্রাহক, ব্যবহার ও আলাদা রক্ষণাবেক্ষণ বৃদ্ধি থাকে। নীতির মেয়াদ শুধু ভবিষ্যৎ লাইসেন্সে লাগে; ৩০ দিনের লাইসেন্স স্থায়ী হয় না।
লাইসেন্স ধরন বদলের সময় সক্রিয় ডিভাইস বা সেশন থাকলে, অথবা নতুন সীমা বর্তমান ব্যবহারের নিচে হলে, সংরক্ষণ ফেরত দেয় ACTIVE_DEVICES_CONFLICT, এবং নীতি বা সংযুক্ত লাইসেন্সে আংশিক পরিবর্তন হয় না। বিরোধী ডিভাইস মুক্ত করে আবার সংরক্ষণ করুন।
সফল সংরক্ষণের পর সংযুক্ত পুরোনো ও নতুন লাইসেন্স পরের সফল সক্রিয়তা, যাচাই বা হার্টবিটে নতুন নিয়ম নেয়। SDK নতুন স্বাক্ষর দিয়ে ক্যাশ বদলায়। একই Idempotency-Key পুনরায় দিলে আগের ফলই আসে।
অফলাইন ডিভাইস পুরোনো স্বাক্ষরিত নিয়মে চলে। শুধু নেট ফিরলেই ক্যাশ বদলায় না; একটি অনুরোধ সফল হতে হয়। সংযোগ ফিরলে অ্যাপ নিজে refresh করতে পারে।
নির্বাচিত লাইসেন্স অন্য নীতিতে নিতে লাইসেন্স পাতায় সেগুলো বেছে নীতি প্রয়োগ দিয়ে প্রিভিউ করুন। বর্তমান সংযুক্ত নীতি সম্পাদনা করলে শুধু সংরক্ষণেই স্বয়ংক্রিয় সিঙ্ক হয়।
সরাসরি অনলাইন রিফ্রেশ
এই পদ্ধতি সবসময় সার্ভারে যায়, স্থায়ী অফলাইন ও হার্টবিট বন্ধ হলেও। সফল হলে স্বাক্ষর বদলায়; নেট ব্যর্থ হলে refresh ত্রুটি জানিয়ে বৈধ পুরোনো ক্যাশ রাখে। স্পষ্ট বাতিল বা মুক্তে ক্যাশ মুছে দেয়।
| ভাষা | কল করার পদ্ধতি |
|---|---|
| Go | client.RefreshOnline(ctx) |
| Java | client.refreshOnline() |
| C | ln_refresh_online(client) |
| C++ | client.RefreshOnline() |
| C# | await client.RefreshOnline() |
| Python | client.refresh_online() |
| JavaScript | await client.refreshOnline() |
সফল refresh এক সক্রিয়করণ API অনুরোধ। নীতি আগে বন্ধ হার্টবিট চালু করলে সংশ্লিষ্ট ভাষার StartHeartbeat ডাকুন। অফলাইন ডিভাইস বাতিল বা মুক্ত করার খবর পায় না।