প্রতিটি HTTP সংযোগ যা আপনার অ্যাপ্লিকেশন একটি নির্দিষ্ট পরিমাণ ওভারহেড ফলাফল করে। এই লাইব্রেরি ব্যাচিং সমর্থন করে, আপনার অ্যাপ্লিকেশনকে একটি একক HTTP অনুরোধে একাধিক API কল করার অনুমতি দিতে। আপনি যখন ব্যাচিং ব্যবহার করতে চাইতে পারেন এমন পরিস্থিতির উদাহরণ:
- আপনার কাছে অনেক ছোট ছোট অনুরোধ আছে এবং HTTP অনুরোধ ওভারহেড কমিয়ে দিতে চান।
- আপনার অ্যাপ্লিকেশন অফলাইনে থাকাকালীন একজন ব্যবহারকারী ডেটাতে পরিবর্তন করেছেন, তাই আপনার অ্যাপ্লিকেশনটিকে প্রচুর আপডেট এবং মুছে ফেলার মাধ্যমে সার্ভারের সাথে তার স্থানীয় ডেটা সিঙ্ক্রোনাইজ করতে হবে৷
দ্রষ্টব্য : আপনি একটি একক ব্যাচ অনুরোধে 1,000 কলের মধ্যে সীমাবদ্ধ। আপনি যদি এর চেয়ে বেশি কল করতে চান তবে একাধিক ব্যাচের অনুরোধ ব্যবহার করুন।
দ্রষ্টব্য : আপনি একটি ব্যাচ অনুরোধে একটি মিডিয়া আপলোড বস্তু ব্যবহার করতে পারবেন না।
বিস্তারিত
আপনি একটি BatchRequest
অবজেক্ট ইনস্ট্যান্টিয়েট করে ব্যাচ অনুরোধ তৈরি করুন এবং তারপরে আপনি চালানো প্রতিটি অনুরোধের জন্য Queue
পদ্ধতিতে কল করুন। প্রতিটি অনুরোধের সাথে, যখন আপনার আবেদন সেই অনুরোধের প্রতিক্রিয়া পায় তখন কল করার জন্য একটি কলব্যাক পাস করুন। কলব্যাক ফাংশনের আর্গুমেন্ট হল:
- বিষয়বস্তু
- অনুরোধ ব্যর্থ হলে বিষয়বস্তুর প্রতিক্রিয়া, বা
null
। - ত্রুটি
- অনুরোধ সফল হলে ত্রুটি, বা
null
। - সূচক
- স্বতন্ত্র অনুরোধের সূচক।
- বার্তা
- সম্পূর্ণ HTTP বার্তা যা এর সমস্ত শিরোনাম এবং সামগ্রী অন্তর্ভুক্ত করে।
ExecuteAsync
পদ্ধতিতে কল করুন।নিম্নলিখিত কোড স্নিপেটে, দুটি API অনুরোধ একটি একক HTTP অনুরোধে ব্যাচ করা হয়, এবং প্রতিটি API অনুরোধ একটি কলব্যাক সরবরাহ করা হয়:
UserCredential credential; using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, new[] { CalendarService.Scope.Calendar }, "user", CancellationToken.None, new FileDataStore("Calendar.Sample.Store")); } // Create the service. var service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Google Calendar API Sample", }); // Create a batch request. var request = new BatchRequest(service); request.Queue<CalendarList>(service.CalendarList.List(), (content, error, i, message) => { // Put your callback code here. }); request.Queue<Event>(service.Events.Insert( new Event { Summary = "Learn how to execute a batch request", Start = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 10, 0, 0) }, End = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 12, 0, 0) } }, "YOUR_CALENDAR_ID_HERE"), (content, error, i, message) => { // Put your callback code here. }); // You can add more Queue calls here. // Execute the batch request, which includes the 2 requests above. await request.ExecuteAsync();