আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
দ্রুত ডেটা পুনরুদ্ধারের জন্য আপনি পলিসি ব্যবহার করে একটি সাধারণ ক্যাশে ডেটা সংরক্ষণ করতে পারেন। নিম্নলিখিত পলিসিগুলো ব্যবহার করে, আপনার প্রক্সি রানটাইমে ক্যাশ করা ডেটা সংরক্ষণ ও পুনরুদ্ধার করতে পারে:
- ক্যাশে ডেটা যোগ করতে ক্যাশে পলিসি পূরণ করুন ।
- ক্যাশ করা ডেটা অ্যাক্সেস করার জন্য LookupCache পলিসি ।
- ক্যাশ ফ্লাশ করার জন্য InvalidateCache পলিসি ।
এই নীতিমালাগুলো আপনার প্রক্সি দ্বারা ব্যবহৃত ডেটার সাধারণ ক্যাশিংয়ের জন্য তৈরি করা হয়েছে।
এই টপিকের নমুনা কোডটি গিটহাবে থাকা আউটবাউন্ড OAuth নমুনা প্রক্সির উপর ভিত্তি করে তৈরি ( নমুনা তালিকা দেখুন)। এই নমুনাটি একাধিক আউটবাউন্ড কলে পুনঃব্যবহারের জন্য একটি OAuth অ্যাক্সেস টোকেন সংরক্ষণ করতে ক্যাশে পলিসি ব্যবহার করে।
প্রতিটি পলিসি টাইপ একটি XML স্কিমা (.xsd) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।
নিম্নলিখিত উদাহরণে, একটি PopulateCache পলিসি ব্যবহার করে একটি OAuth অ্যাক্সেস টোকেন ক্যাশে লেখা হয়। পরবর্তী অনুরোধগুলির জন্য একটি LookupCache পলিসি দ্বারা OAuth টোকেনটি পুনরুদ্ধার করা হয়। অ্যাক্সেস টোকেনটির মেয়াদ শেষ হয়ে গেলে, জাভাস্ক্রিপ্ট ব্যবহার করে একটি নতুন অ্যাক্সেস টোকেন পুনরুদ্ধার করা হয়, যা আবার PopulateCache পলিসি দ্বারা ক্যাশে করা হয়।
ক্যাশে পূরণ করুন
ক্যাশে ডেটা লেখার জন্য PopulateCache পলিসি ব্যবহার করুন। এই উদাহরণটি ক্যাশে একটি OAuth অ্যাক্সেস টোকেন লেখে। পলিসি সংক্রান্ত তথ্যের জন্য, Populate Cache পলিসি দেখুন।
<PopulateCache name="token-cache"> <!-- The cache to write to. --> <CacheResource>mycache</CacheResource> <!-- The source of the data, a variable containing the value. --> <Source>twitter-translate.apiAccessToken</Source> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- A unique pointer (a flow variable value) to the data. Use this later to retrieve it. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id"></KeyFragment> </CacheKey> <!-- Entries placed into the cache with this policy will expire after 600 seconds. --> <ExpirySettings> <TimeoutInSec>600</TimeoutInSec> </ExpirySettings> </PopulateCache>
ভেরিয়েবল পলিসি বা কোডের মাধ্যমে পূরণ করা যেতে পারে। এই উদাহরণে, ' Source ভেরিয়েবলটি নিম্নলিখিত জাভাস্ক্রিপ্ট কলের মাধ্যমে পূরণ করা হয়েছে: context.setVariable('twitter-translate.apiAccessToken', getAccessToken());
ক্যাশ কী সম্পর্কে আরও জানতে, “ক্যাশ কী নিয়ে কাজ করা” দেখুন।
ক্যাশ করা ডেটা সন্ধান করুন
আপনি LookupCache পলিসি ব্যবহার করে ক্যাশ করা মান পুনরুদ্ধার করতে পারেন। নিম্নলিখিত LookupCache পলিসিটি mycache থেকে একটি মান পড়ে এবং সেই মানটি twitter-translate.apiAccessToken ভেরিয়েবলে লিখে রাখে। পলিসি সংক্রান্ত তথ্যের জন্য, LookupCache পলিসি দেখুন।
<LookupCache name="token-cache"> <!-- The cache to read from. --> <CacheResource>mycache</CacheResource> <!-- Where to assign the retrieved value - here, a variable. --> <AssignTo>twitter-translate.apiAccessToken</AssignTo> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- The unique pointer (a flow variable value) that was used to store the data in the cache. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id"></KeyFragment> </CacheKey> </LookupCache>
ক্যাশে বাতিল করুন
একটি HTTP হেডার উল্লেখ করে ক্যাশে স্পষ্টভাবে বাতিল করা যেতে পারে। যখন নির্দিষ্ট HTTP হেডার সম্বলিত কোনো অনুরোধ গৃহীত হয়, তখন ক্যাশে ফ্লাশ করা হবে। পলিসি সংক্রান্ত তথ্যের জন্য, InvalidateCache পলিসি দেখুন।
<InvalidateCache name="InvalidateMyCache"> <!-- The cache to invalidate. --> <CacheResource>test-cache</CacheResource> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- Fragments constructing the unique pointer used when the data was put into the cache. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey> <PurgeChildEntries>true</PurgeChildEntries> </InvalidateCache>